问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

video.js库这个插件比单纯的标签元素增加了什么功能

发布网友 发布时间:2022-04-20 06:20

我来回答

2个回答

懂视网 时间:2022-05-12 05:40

这次给大家带来H5的视频播放库video.js详解,使用H5的视频播放库video.js的注意事项有哪些,下面就是实战案例,一起来看一下。

video.js是一款很流行的html5视频播放插件。很适合在移动端播放视频(比如微信网页),功能强大,且支持降级到flash,兼容ie8。官网:http://videojs.com/ git&demo :http://files.cnblogs.com/files/stoneniqiu/video-js-5.11.4.zip

看下默认例子:

<head>
 <title>Video.js | HTML5 Video Player</title>
 <link href="http://vjs.zencdn.net/5.0.2/video-js.css" rel="stylesheet">
 <script src="http://vjs.zencdn.net/ie8/1.1.0/videojs-ie8.min.js"></script>
 <script src="http://vjs.zencdn.net/5.0.2/video.js"></script></head><body>
 <video id="example_video_1" class="video-js vjs-default-skin" controls preload="none" width="640" height="264" poster="http://vjs.zencdn.net/v/oceans.png" data-setup="{}">
 <source src="http://vjs.zencdn.net/v/oceans.mp4" type="video/mp4">
 <source src="http://vjs.zencdn.net/v/oceans.webm" type="video/webm">
 <source src="http://vjs.zencdn.net/v/oceans.ogv" type="video/ogg">
 <track kind="captions" src="../shared/example-captions.vtt" srclang="en" label="English"></track>
 <!-- Tracks need an ending tag thanks to IE9 -->
 <track kind="subtitles" src="../shared/example-captions.vtt" srclang="en" label="English"></track>
 <!-- Tracks need an ending tag thanks to IE9 -->
 <p class="vjs-no-js">To view this video please enable JavaScript, and consider upgrading to a web browser that <a href="http://videojs.com/html5-video-support/" target="_blank">supports HTML5 video</a></p>
 </video></body>

View Code

controls表示控制条,prload:预加载,poster表示最初的显示的图片。data-set支持用json来设置一些参数。source不用说了,track指的是字幕。

这样子就出来了,但是在实际中我们还有其他需求。

不要字幕:

需要应用novtt的js,在demo的alt文件中。这样视频控制条中就不会出现字母的选择。当然你不再需要页面中的track元素了。

<link href="~/js/video-js-5.11.4/alt/video-js-cdn.min.css" rel="stylesheet" /><script src="~/js/video-js-5.11.4/alt/video.novtt.min.js"></script>

宽高自适应:

开始用css自己设置,发现怎么都没有效果。视频元素不同于一般的元素,需要通过设置内在元素的比率来做到响应式的宽高。video.js提供了两种方式。

js:设置一个fluid为true。

 var player = videojs('video', { fluid: true }, function () {
  console.log('Good to go!');  this.play(); // if you don't trust autoplay for some reason })

但这个还需要给video元素设置一个起始的宽高,不然开始的图片看不见。

css:可以直接添加样式。有三种 .vjs-fluid,.vjs-4-3,.vjs-16-9 第一种它会自动计算,后面两种指定比率。 样式也需要设置起始宽高才能显示图片

 <video id="video" class="video-js vjs-default-skin vjs-fluid" poster="http://vjs.zencdn.net/v/oceans.png" width="375" height="200" controls preload="none"
  data-setup='{ "html5" : { "nativeTextTracks" : false } }'>
 <source src="@Model.Url" type="video/mp4">
 <p class="vjs-no-js"> 播放视频需要启用 JavaScript,推荐使用<a href="http://videojs.com/html5-video-support/" target="_blank">支持HTML5</a>的浏览器访问。</p>
 </video>

事件关注:

我们一般关注开始,暂停,结束这三个事件

 var player = videojs('video', { }, function () {
  console.log('Good to go!');  //this.play(); // if you don't trust autoplay for some reason });
 player.on('play', function () {
  console.log('开始/恢复播放');
 });
 player.on('pause', function () {
  console.log('暂停播放');
 });
 player.on('ended', function () {
  console.log('结束播放');
 });

还有更新事件:

player.on('timeupdate', function() {
  console.log(player.currentTime());
 });

可以通过判断当前时间和总时间是否相等来判断视频是否结束:

player.on('timeupdate', function () { 
 // 如果 currentTime() === duration(),则视频已播放完毕
 if (player.duration() != 0 && player.currentTime() === player.duration()) {  // 播放结束 }
 });

有前辈指出在ended事件在安卓设备上没有正确触发(先备着)。

MIME类型设置

默认的iis MIME设置是没有增加mp4类型的,会出现本地播放没有问题,但是到了服务器上就出404错误。这需要在iis中设置MIME:

常见视频格式:

flv格式是加入关联扩展名:.flv,内容类型:application/octet-stream
f4v格式是扩展名:.f4v,内容类型:application/octet-stream
mp4格式是扩展名:.mp4,内容类型:video/mp4
ogv格式是扩展名:.ogv ,内容类型:video/ogg
webm格式是扩展名:.webm,内容类型:video/webm
设置完重启iis才能生效。

样式自定义

官方给了一个codepen的地址 http://codepen.io/heff/pen/EarCt 可以编辑玩玩。 主要是播放按钮,控制条和进度条。默认就是上面那样。

还有这款:http://codepen.io/zanechua/pen/GozrNe SublimeVideo.

Flash设置

Playback技术用来在浏览器或插件中播放视频或音频文件,如果是h5会使用video或audio元素,如果是flash,会定义一个flash播放器。不止flash,还支持Silverlight、Quicktime等技术播放。可以在元素中直接定义data-setup。指定支持的技术。

<video data-setup='{"techOrder": ["html5", "flash", "other supported tech"]}'

或者使用JavaScript:

videojs("videoID", {
 techOrder: ["html5", "flash", "other supported tech"]
});

这里默认的规则是,会用第一项技术去播放,不行再使用后面的选项。比如上方html5写在第一位,就会用html5播放所有的视频。如果我们想flash优先,放在前面即可:

 data-setup='{ "techOrder": ["flash","html5"] }'

在页面元素中你会发现,video.js给我们使用的flash对象了。

自动播放:

给video元素加上autoplay属性,或者在js中加入autoplay:true

 <video id="video" autoplay poster="/images/bk.png" width="375" height="200" controls preload="none" > </video>

 var player = videojs('video', { autoplay:true }, function () {
  console.log('Good to go!');  //this.play(); // 保险你还可以主动调用play()
 });

自动播放总让人讨厌,反之就是删除autoplay属性或设置为false。

其他:

video.js支持扩展插件,用起来很方便。

 //定义一个插件
 function examplePlugin(options) {  this.on('play', function (e) {
  console.log('playback has started!');
  });
 } //注册
 videojs.plugin('examplePlugin', examplePlugin); // 使用
 player.examplePlugin({ exampleOption: true });

插件内部可以直接调用播放器的api。 有一款playlist的插件可以研究下,如过你需要播放列表。https://github.com/brightcove/videojs-playlist 以及 http://videojs.com/advanced/ 有这样的效果:

用qq影音转码比较方便,比起什么格式工厂。H.264

相信看了本文案例你已经掌握了方法,更多精彩请关注Gxl网其它相关文章!

推荐阅读:

JS里特别好用的轻量级日期插件

公众号支付接口的开发

热心网友 时间:2022-05-12 02:48

Video.js 是一个通用的在网页上嵌入视频播放器的 JS 库,Video.js 自动检测浏览器对 HTML5 的支持情况,如果不支持 HTML5 则自动使用 Flash 播放器。
使用方法
在页面中引用video-js.cs样式文件和video.js
<link href="video-js.css" rel="stylesheet" type="text/css">
<script src="video.js"></script>

设置flash路径,Video.js会在不支持html5的浏览中使用flash播放视频文件
<script>
videojs.options.flash.swf = "video-js.swf";
</script>

html
poster="**"播放初始图。可使用三种视频格式,根据所需要格式选择对应的。
<video id="example_video1" class="video-js vjs-default-skin" controls preload="none" width="640" height="264"
poster="http://video-js.zencoder.com/oceans-clip.png"
data-setup="{}">
<source src="http://视频地址格式1.mp4" type='video/mp4' />
<source src="http://视频地址格式2.webm" type='video/webm' />
<source src="http://视频地址格式3.ogv" type='video/ogg' />
<track kind="captions" src="demo.captions.vtt" srclang="en" label="English"></track><!-- Tracks need an ending tag thanks to IE9 -->
<track kind="subtitles" src="demo.captions.vtt" srclang="en" label="English"></track><!-- Tracks need an ending tag thanks to IE9 -->
</video>

设置自动播放将下面代码加到html中代码后面

<script type="text/javascript">
var myPlayer = videojs('example_video1');
videojs("example_video1").ready(function(){
var myPlayer = this;
myPlayer.play();
});
</script>
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
如何通过故事和绘画激发孩子的想象力? 怎么提高孩子在绘画方面的想象力? 哪个牌子的素描纸最好用 1 60g的素描纸等于多少A? 一条高速公路的路基长100千米宽50米这条公路路基占地面积大约多少公顷合... 选择四川大学的原因是什么? 成都哪个学校留学生多 如何验证IPVS是否安装正常 杭州市十三中和杭外初中是考试进入的还是划片进入的?如果是划片需要户口... 怎么关闭余额宝?具体操作步骤是什么? 吊顶神器一个钉弹可承载多少公斤 求教js大神,videojs中怎么自动播放下一集 为什么说猪八戒的九齿钉耙比金箍棒还厉害,甚至完... 吊顶神器用什么钉打进去 吊顶神器的钉子对楼顶有没有损害或者隐患! 吊顶神器打出去的钉子是直的还是弯的 吊顶神器钉子放时间长了药片会不会失效 墙上的钉子怎么起下来 吊顶神器多少钱一把了 吊顶神器钉子能承受得了多重 吊顶神器打的钉会牢固吗 吊顶神器射钉枪怎么调力大小 吊顶神器钉子安全嘛,会不会掉在地上或者装枪的时... 吊顶神器用了好几种射钉,被居民投诉了声音都太大... 免钉螺丝贴,真的是非常好用的神器吗? 我是一位踢脚线安装工安装踢脚线卡扣到墙上要用钉... 吊顶神器钉子哪里卖,多少钱一个。 起钉子的专用工具叫什么? ipad可以下载pr软件吗 玻璃制成的过程 吊顶神器打混凝土打烂是什么原因 videojs怎么播放rtmp协议 被子固定器怎么拿下来? video.js怎么改音量条的方向 如何在网页上插入视频(用html制作) HTML5 怎么做音频编辑?如拼接,混音之类的 html5 中的 video 如何隐藏底部的全屏按钮或控制条 英飞凌是哪个国家的 英飞凌的半导体器件是台积电代工的还是有自己的生... 英飞凌IGBT芯片有哪些型号规格参数? 世界上最大的芯片制造商 英飞凌的介绍 汽车芯片主要供应商有哪些? Infineon(英飞凌)四大产品系列是什么? 英飞凌电磁炉的控制芯片型号是什么 英飞凌股票 从“停产风波”一窥国产芯片的机会 英飞凌向华为提供什么配件? 重庆电台列表 收音机电台时间、列表