Video.js 使用简介
Video.js 是一个功能强大的HTML视频播放器。简单记录一下用法。
一. 初始化
1. 自动
给video标签加上data-setup标签,在里面写参数。
data-setup需用单引号,因为里面的内容应该是JSON格式。
<video class="video-js" data-setup='{}'> <source src="//vjs.zencdn.net/v/oceans.mp4" type="video/mp4"> <source src="//vjs.zencdn.net/v/oceans.webm" type="video/webm"> </video>
2. 手动
<video class="video-js" id="my-player">
<source src="//vjs.zencdn.net/v/oceans.mp4" type="video/mp4">
<source src="//vjs.zencdn.net/v/oceans.webm" type="video/webm">
</video>
直接调用videojs(),可传入video元素的id或者dom。
videojs('my-player');
videojs(document.querySelector('video'));
二. 设置参数/选项
1. 在video标签中填入
<video controls autoplay preload="auto" ...>
布尔值选项只要出现在标签的属性中,即为true,即使将它设置为false也仍然为true。不出现在属性中才是false。
比如以下例子中:="true"
无需填入,controls
属性仍然是true
。<video controls="true" ...> <video loop="true" ...> <video controls="false" ...>
2. 在data-setup中设置
<video data-setup='{"controls": true, "autoplay": false, "preload": "auto"}'...>
3. 手动初始化的时候设置
videojs('my-player', {
controls: true,
autoplay: false,
preload: 'auto'
});
4. 设置全局/默认参数
videojs.options.autoplay = true;
三、遇到的坑
1. 退出全屏后,页面自动滚动到顶部
搜索发现早在2016年就有人提出这个问题,当时说是Chrome的bug,然而今天Chrome72上面仍然有这个问题。
document.querySelectorAll('video').forEach(function(val,idx,arr){
let player=videojs(val);
player.on('fullscreenchange',function(){
if(!this.isFullscreen()){
let self=this;
setTimeout(function(){
self.dom.scrollIntoView();
},200);
}
})
player.dom=val;
players.push(player);
});
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。