videojs使用技巧
摘自https://www.awaimai.com/2053.html
1 初始化
Videojs初始化有兩種方式。
1.1 標(biāo)簽方式
一種是在<video>標(biāo)簽里面加上class="video-js"和data-setup='{}'屬性。
注意,兩者缺一不可。
我剛開始的時(shí)候覺得后面的值為空對(duì)象{},不放也行,導(dǎo)致播放器加載不出來,后來加上來就可以了。
1.2 JS方式
另外一種方法是通過JS初始化,格式:
var player = videojs('my-player');
這樣有個(gè)要求,就是不能配置data-setup,并且需要傳入<video>的id。
當(dāng)然,如果不想一個(gè)個(gè)初始化,可以這樣來:
(function(){
var videos = document.getElementsByTagName('video');
for(i=0; i<videos.length; i++) {
var video = videos[i];
if(video.className.indexOf('video-js') > -1) {
videojs(video.id).ready(function(){
});
}
}
})();
2 播放按鈕居中
videojs默認(rèn)的播放按鈕在左上角,是作者認(rèn)為會(huì)遮擋內(nèi)容考慮的。
不過這是可以通過參數(shù)修改的,在<video>標(biāo)簽中加入vjs-big-play-centered類,就可以了。
像這樣:
class="video-js vjs-big-play-centered"
3 支持<audio>音樂標(biāo)簽
videojs 4.9開始支持<audio>標(biāo)簽,支持的方式就是,播放的時(shí)候封面不會(huì)消失。
但是上面的播放框還是一直在的,配置方式和<video>標(biāo)簽一樣,也必須要配置data-setup參數(shù)。
4 禁止在iPhone safari中自動(dòng)全屏
很多人給出的方法是,在<video>標(biāo)簽中加入playsinline參數(shù),如下
<video playsinline ></video>
注意,在iOS10之前用的是webkit-playsinline。
5 暫停時(shí)顯示播放按鈕
videojs在未播放時(shí),會(huì)顯示一個(gè)大的播放按鈕,上面我們提到如何讓他居中。
那么,如何在視頻暫停時(shí)也顯示這個(gè)播放按鈕呢?
有很多用JS的解決辦法,感覺都挺麻煩的。
其實(shí)用CSS就可以搞定了:
.vjs-paused .vjs-big-play-button,
.vjs-paused.vjs-has-started .vjs-big-play-button {
display: block;
}
是不是很輕便很簡單 :)
6 播放按鈕變○圓形
videojs默認(rèn)的播放按鈕是圓角矩形,但是一般我們更熟悉圓形的播放按鈕。
那么怎么改呢?還是用CSS來解決。
.video-js .vjs-big-play-button{
font-size: 2.5em;
line-height: 2.3em;
height: 2.5em;
width: 2.5em;
-webkit-border-radius: 2.5em;
-moz-border-radius: 2.5em;
border-radius: 2.5em;
background-color: #73859f;
background-color: rgba(115,133,159,.5);
border-width: 0.15em;
margin-top: -1.25em;
margin-left: -1.75em;
}
/* 中間的播放箭頭 */
.vjs-big-play-button .vjs-icon-placeholder {
font-size: 1.63em;
}
/* 加載圓圈 */
.vjs-loading-spinner {
font-size: 2.5em;
width: 2em;
height: 2em;
border-radius: 1em;
margin-top: -1em;
margin-left: -1.5em;
}
因?yàn)樵瓉砭又械臅r(shí)候?qū)挾群透叨雀淖兞耍?code class="hljs">margin的值也要相應(yīng)改變
7 點(diǎn)擊屏幕切換播放/暫停
這個(gè)是視頻播放的時(shí)候用得較多的功能,解決方法如下。
.video-js.vjs-playing .vjs-tech {
pointer-events: auto;
}
pointer-events是CSS的一個(gè)屬性,用來控制鼠標(biāo)的動(dòng)作,具體可參考《CSS里的pointer-events屬性》。
8 重載視頻文件
總有那么一些情形,我們需要重新載入視頻文件。
比如,馬上播放剛上傳的文件。
例如這樣的標(biāo)簽:
<video id="example_video">
<source id="videoMP4" src="1.mp4" />
</video>
<button id="reload">重載</button>
那通過JS方式就可以這樣實(shí)現(xiàn):
var video = document.getElementById('example_video');
var source = document.getElementById('videoMP4');
$("#reload").click(function() {
video.pause()
source.setAttribute('src', '2.mp4');
video.load();
video.play();
});
或者:
var video = document.getElementById('example_video');
$("#reload").click(function() {
video.pause()
video.setAttribute('src', '2.mp4');
video.load();
video.play();
});
總結(jié)
以上是生活随笔為你收集整理的videojs使用技巧的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据不平衡分类问题
- 下一篇: LG 显示在韩国实行自愿休假:最长带薪休