videojs使用技巧

摘自https://www.awaimai.com/2053.htmlcss

1 初始化

Videojs初始化有兩種方式。html

1.1 標籤方式

一種是在<video>標籤裏面加上class="video-js"data-setup='{}'屬性。web

注意,二者缺一不可。apache

我剛開始的時候以爲後面的值爲空對象{},不放也行,致使播放器加載不出來,後來加上來就能夠了。ide

1.2 JS方式

另一種方法是經過JS初始化,格式:post

var player = videojs('my-player');

這樣有個要求,就是不能配置data-setup,而且須要傳入<video>的id。spa

固然,若是不想一個個初始化,能夠這樣來:code

(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默認的播放按鈕在左上角,是做者認爲會遮擋內容考慮的。視頻

不過這是能夠經過參數修改的,在<video>標籤中加入vjs-big-play-centered類,就能夠了。htm

像這樣:

class="video-js vjs-big-play-centered"

3 支持<audio>音樂標籤

videojs 4.9開始支持<audio>標籤,支持的方式就是,播放的時候封面不會消失。

可是上面的播放框仍是一直在的,配置方式和<video>標籤同樣,也必需要配置data-setup參數。

4 禁止在iPhone safari中自動全屏

不少人給出的方法是,在<video>標籤中加入playsinline參數,以下

<video playsinline ></video>

注意,在iOS10以前用的是webkit-playsinline

5 暫停時顯示播放按鈕

videojs在未播放時,會顯示一個大的播放按鈕,上面咱們提到如何讓他居中。

那麼,如何在視頻暫停時也顯示這個播放按鈕呢?

有不少用JS的解決辦法,感受都挺麻煩的。

其實用CSS就能夠搞定了:

.vjs-paused .vjs-big-play-button,
.vjs-paused.vjs-has-started .vjs-big-play-button {
    display: block;
}

是否是很輕便很簡單 :)

6 播放按鈕變○圓形

videojs默認的播放按鈕是圓角矩形,可是通常咱們更熟悉圓形的播放按鈕。

那麼怎麼改呢?仍是用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;
}

由於原來居中的時候寬度和高度改變了,因此margin的值也要相應改變

7 點擊屏幕切換播放/暫停

這個是視頻播放的時候用得較多的功能,解決方法以下。

.video-js.vjs-playing .vjs-tech {
    pointer-events: auto;
}

pointer-events是CSS的一個屬性,用來控制鼠標的動做,具體可參考《CSS裏的pointer-events屬性》。

8 重載視頻文件

總有那麼一些情形,咱們須要從新載入視頻文件。

好比,立刻播放剛上傳的文件。

例如這樣的標籤:

<video id="example_video">
    <source id="videoMP4" src="1.mp4" />
</video>
<button id="reload">重載</button>

那經過JS方式就能夠這樣實現:

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();
});
相關文章
相關標籤/搜索