网上找的一个小例子,包括时长播放时间等等都有。

mrl可以设置本地文件,这样发布网站后只能播放本地有的文件,

如果视频文件全在服务器上,其他电脑想看的话,则可以IIS上发布个视频文件服务器,类似http://192.168.1.1:8000/video/1.flv  这样可以访问到视频文件,然后这个http路径可以设置为mrl
但这样的话经测试支持的格式不多,flv是可以的 测试可以使用 使用vlc播放器播放rtsp视频 这里的打开网络串流看能不能正常播放,如果播放不了,即使视频文件可以访问到这个插件也播放不了的 vlc开发相关参考 web网页中使用vlc插件播放相机rtsp流视频 这里不再讲解
 <html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>视频剪辑</title>
<script type="text/javascript" charset="UTF-8">
<!-- 屏蔽右键
// document.oncontextmenu=function(e){return false;}
//-->
var vlc; // VLC对象
var itemId; // 播放列表中播放节目的id
var vlcSound; // vlc音量大小(初始化默认为50)
var videoLength; // 视频总时长
var then_time; // 播放开始时间(播放开始的日期,看下面实现代码,它是毫秒哦)
var isPlaying=0; // 是否播放状态 (0 未播放 1 播放)
// 初始化 === 很重要哦,控制程序的入口
function initPlayUrl(){
vlc=document.getElementById("vlc");
// 添加播放地址
//vlc.playlist.add(window.opener.vdUrl);
// 播放
// vlc.playlist.play();
// 添加播放地址方式2 -- 推荐用下面的方法控制播放列表
var vedio_url=window.opener.vdUrl;
itemId= vlc.playlist.add(vedio_url);
vlc.playlist.playItem(itemId); // 获取VLC当前音量
vlcSound=vlc.audio.volume;
// 设置VLC音量值
document.getElementById("vlc_sound").value=vlcSound;
// 播放按钮不可用
document.getElementById("play_button").disabled=true; // 检查播放节目的状态 -- 注意这个是延时操作哦(setTimeout以毫秒为单位,这里延时0.5秒)
setTimeout(checkVedioStatus,500);
} // 检查播放节目的状态
function checkVedioStatus(){
if(vlc.input.state>2 && vlc.input.state<5){
isPlaying=1;
// vlc.input.time 当前播放时长,单位毫秒
// vlc.input.length 节目总时长,单位毫秒
videoLength=parseInt(vlc.input.length/1000);
var temp_total_time=parseTime(videoLength);
// 总时长设置
document.getElementById("vedio_length").value=temp_total_time;
// 当前可以输入时间段跳转
document.getElementById("time_change").disabled=false;
// 获得当前系统时间
then_time=new Date().getTime();
// 计算当前播放时间点
checkTime();
}else{
// 如果不是播放状态就在延时执行
setTimeout(checkVedioStatus,500);
}
} // 实时检测系统时间,计算视频的播放时长(典型的秒表功能)
function checkTime(){
if(isPlaying==1){
setTimeout("checkTime();",50);
var temp_time=parseInt((new Date().getTime() - then_time)/1000);
document.getElementById("current_video_time").value=parseTime(temp_time);
}
} // 改变播放地址
function changeNewBeginTime(){
// vlc.input.time 获取当前播放时间(毫秒)/也可重设当前播放时间点
var jumpTime=document.getElementById("change_length").value;
if(jumpTime!=""){
if(jumpTime>videoLength){
alert("对不起,输入值大于视频总时长...");
return;
}
vlc.input.time=jumpTime*1000;
then_time=new Date()-jumpTime*1000;
}
} // 把秒转换为时间格式(HH:mm:ss)
function parseTime(numLength){
var h_time=0;
var m_time=0;
var s_time=0;
if(numLength>=60){
m_time=parseInt(numLength/60);
s_time=parseInt(numLength%60);
}else{
s_time=numLength;
}
if(m_time>=60){
h_time=parseInt(m_time/60);
m_time=parseInt(m_time%60);
} if(h_time<10){
h_time="0"+h_time;
}
if(m_time<10){
m_time="0"+m_time;
}
if(s_time<10){
s_time="0"+s_time;
}
return h_time+":"+m_time+":"+s_time;
} // 停止播放
function stopPlay(){
vlc.playlist.stop();
isPlaying=0; // 修改播放/停止按钮状态
document.getElementById("play_button").disabled=false;
document.getElementById("stop_button").disabled=true; // 修改跳转按钮的状态
document.getElementById("change_length").value="";
document.getElementById("time_change").disabled=true; // 当前视频播放时间点清空
document.getElementById("current_video_time").value="";
}
// 重新播放
function repeatPlay(){
vlc.playlist.play();
setTimeout(checkVedioStatus,500);
// 修改播放/停止按钮状态
document.getElementById("play_button").disabled=true;
document.getElementById("stop_button").disabled=false;
}
// 静音
function noSound(){
if(vlcSound>0){
vlcSound=0;
}
vlc.audio.toggleMute();
vlcSound=vlc.audio.volume;
document.getElementById("vlc_sound").value=vlcSound;
if(vlcSound==0){
// document.getElementById("no_sound").value=" 恢复音量 ";
document.getElementById("no_sound").value=" "+"恢复音量"+" ";
}else{
// document.getElementById("no_sound").value=" 静    音 ";
document.getElementById("no_sound").value=" "+"静"+" "+"音"+" ";
}
}
// 音量加减
function soundChange(nums){
if(nums<0 && vlcSound==0){
alert("音量最小,不能再减少音量....");
return;
}
vlcSound+=nums;
if(vlcSound<=0){
vlcSound=0;
document.getElementById("no_sound").value=" "+"恢复音量"+" ";
}else{
// 当音量>0的时候,都要把静音的标识打开
document.getElementById("no_sound").value=" "+"静"+" "+"音"+" ";
}
if(vlcSound>200){
alert("音量最大,不能再增大音量....");
vlcSound=200;
}
vlc.audio.volume =vlcSound;
document.getElementById("vlc_sound").value=vlcSound;
}
//全屏
function screenFull(){
vlc.video.toggleFullscreen()
}
</script>
</head>
<body onload="initPlayUrl()" >
<!--[if IE]>
<object type='application/x-vlc-plugin' id='vlc' events='True'
classid='clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921' width="720" height="540">
<param name='mrl' value='1.mp4' />
<param name='volume' value='50' />
<param name='autoplay' value='false' />
<param name='loop' value='false' />
<param name='fullscreen' value='false' />
</object>
<![endif]-->
<!--[if !IE]><!-->
<object type='application/x-vlc-plugin' id='vlc' events='True' width="720" height="540">
<param name='mrl' value='1.mp4' />
<param name='volume' value='50' />
<param name='autoplay' value='true' />
<param name='loop' value='false' />
<param name='fullscreen' value='false' />
</object>
<!--<![endif]-->
<br><br>
<input type="button" value=" 播    放 " onclick="repeatPlay();" id="play_button">  
<input type="button" value=" 停    止 " onclick="stopPlay();" id="stop_button">  
<input type="button" value=" 静    音 " onclick="noSound();" id="no_sound">  
<input type="button" value=" 减少音量 " onclick="soundChange(-10);">  
<input type="button" value=" 增大音量 " onclick="soundChange(10);">  
<input type="button" value=" 全    屏 " onclick="screenFull();">     
                   <font color="red" size="2">音量:</font><input type="text" id="vlc_sound" style="width: 40px;color: blue">
<br>
<font color="red" size="2">总时长:</font><input type="text" id="vedio_length" style="width: 65px;color: blue"> 
<input type="text" id="current_video_time" style="width: 65px;color: blue">                     
            <font color="red" size="2">跳转:</font><input type="text" id="change_length" style="width: 100px;color: blue">
<span style="color: blue;font-weight: normal;font-size: 14px">秒</span>
 
<input type="button" value="确定" id="time_change" disabled="disabled" onclick="changeNewBeginTime();">
</body>
</html>

  

使用VLC Activex插件做网页版视频播放器的更多相关文章

  1. javascript实现移动端网页版阅读器

    现在手机上的文本阅读app已经非常丰富,良好的阅读体验与海量的书库常常令我感到无比兴奋. 我想到8年前用一点几寸屏幕的mp3看电子书的情景,顿生一种淡淡的温馨.再久远一些,小的时候,我也经常和小伙伴们 ...

  2. PotPlayer 1.6.52965 美化版|视频播放器

    Potplayer播放器,基本上可以解析大部分的视频格式.作为单机版的视频播放器很不错的选择! Potplayer,只为播放而生! exp: 点击下载

  3. 使用vcastr22.swf做flash版网页视频播放器

    flash的安装设置参考  Flash设置(各种版本浏览器包括低版本IE) 百度搜索下载vcastr22.swf文件 然后使用方式很简单,浏览器安装flash相关插件就能看了 视频路径主要在这里,视频 ...

  4. 【Egret】Native版本 视频播放器(android)

    前段时间,领导说客户要一个平板版本的视频播放器,把我们做的一些视频资源放进去,要是本地的:我们部门又没有app开发程序员,正好又前段我在实验egret的app打包功能,就说用egret做(ps:本来想 ...

  5. Android 视频播放器切换到下个视频时残留上个视频画面的解决办法

    最近在做一个Android视频播放器,遇到一个问题:切换到下一个视频时,中间会停留上一个视频的残存画面.   这是怎么回事?   我在网上找了很多资料,终于找到了原因:我是用自定义一个surfacev ...

  6. Pyqt 音视频播放器

    在寻找如何使用Pyqt做一个播放器时首先找到的是openCV2 openCV2 貌似太强大了,各种关于图像处理的事情它都能完成,如 读取摄像头.图像识别.人脸识别.  图像灰度处理 . 播放视频等,强 ...

  7. QT-简易视频播放器

    一直没找到理由去学一下QT,由于工作原因之后的工作内容会用到QT,于是这两天摸索了下:早上临时决定先做个视频播放器玩一下,于是先用qml发现不会用,无果,于是放弃了使用qml,等之后系统的看一下Jav ...

  8. Java视频播放器的制作

    ----------------siwuxie095                             使用 Java Swing 框架制作一个简单的视频播放器:         首先到 Vid ...

  9. Chrome插件-网页版BusHound

    Chrome插件-网页版BusHound

随机推荐

  1. arcgis api 3.x for js 入门开发系列十五台风轨迹

    前言 关于本篇功能实现用到的 api 涉及类看不懂的,请参照 esri 官网的 arcgis api 3.x for js:esri 官网 api,里面详细的介绍 arcgis api 3.x 各个类 ...

  2. lock了mutex的线程退出了却没有unlock时会怎么样?

    https://stackoverflow.com/questions/4424193/what-happens-to-mutex-when-the-thread-which-acquired-it- ...

  3. 解决laravel Class 'Doctrine\DBAL\Driver\PDOMySql\Driver' not found 错误

    这个错误的原因来自于没有安装一个依赖库: 官方文档说明如下: Modifying Columns Prerequisites Before modifying a column, be sure to ...

  4. vue(5)—— vue的路由插件—vue-router 常用属性方法

    前端路由 看到这里可能有朋友有疑惑了,前端也有路由吗?这些难道不应该是在后端部分操作的吗?确实是这样,但是现在前后端分离后,加上现在的前端框架的实用性,为的就是均衡前后端的工作量,所以在前端也有了路由 ...

  5. gitlab+jenkins自动发布Python包到私有仓储

    背景 有个私有仓储,地址为https://your.repo.com/pypi/ 代码存储在gitlab, 地址为https://gitlab.company.com/software.git CI为 ...

  6. python3 json数据格式的转换(dumps/loads的使用、dict to str/str to dict、json字符串/字典的相互转换)

    在写网络爬虫的时候,有时候会抓取到一些json格式的字符串,想要通过python字典的方式对字串中的内容进行寻址,则需要将json字符串先转换为python字典. dumps()函数: loads() ...

  7. 公钥密码RSA算法记录

    介绍: RSA算法是1978年由 R.Rivest.A.Shamir.L.Adleman提出的一种用数论构造的.也是迄今为止理论上最为成熟.完善的公钥密码体,该体制已得到广泛的应用. 算法描述: 1. ...

  8. redux 简介

    概述 Redux 本身是个极其简单的状态管理框架, 它的简单体现在概念少, 流程明确. 但是, 正是因为简单, 使用上没有强制的约束, 所以如果用不好, 反而会让状态管理更加混乱. 我觉得, 用好 R ...

  9. 一款回到顶部的 jQuery 插件,支持 Div 中的滚动条回到顶部

    前言 今天在网上搜索“回到顶部”的 jQuery 插件,网上有很多,但是大部分都不支持让 Div 中的滚动条回到顶部.于是乎,不放弃,自己参考 Github 上的一个 jQuery 插件,经过自己的修 ...

  10. [LeetCode] 19. 删除链表的倒数第N个节点

    题目链接:https://leetcode-cn.com/problems/remove-nth-node-from-end-of-list/ 题目描述: 给定一个链表,删除链表的倒数第 n 个节点, ...