Video.js初始化有兩種方式。javascript
一種是在<video>
標籤裏面加上class="video-js"
和data-setup='{}'
屬性。css
注意,二者缺一不可。html
剛開始的時候我以爲後面的值爲空對象{}
,不放也行,java
致使播放器加載不出來,後來加上來就能夠了。web
另一種初始化 video.js 的方法是經過JS,格式:apache
var player = videojs('my-player');
這樣有個要求,就是不能配置data-setup
,而且須要傳入<video>
的id
。ide
固然,若是不想一個個初始化,能夠這樣:post
(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(){ }); } } })();
video.js默認的播放按鈕在左上角,應該是 video.js 開發人員認爲放中間會遮擋內容,因此沒放中間。ui
不過咱們常見的通常都在中間,比較符合習慣。spa
這是能夠經過參數修改的,在<video>
標籤中加入vjs-big-play-centered
類,就能夠了。
像這樣:
class="video-js vjs-big-play-centered"
video.js 4.9開始支持<audio>
標籤,與video不一樣的是:播放audio時封面不會消失。
可是上面的播放框仍是一直在的,配置方式和<video>
標籤同樣,也必需要配置data-setup
參數。
方法以下,在<video>
標籤中加入playsinline
參數,
<video playsinline ></video>
注意,在iOS10以前用的是webkit-playsinline
。
video.js 在未播放時,會顯示一個大的播放按鈕,上面咱們提到如何讓他居中。
那麼,如何在視頻暫停時也顯示這個播放按鈕呢?
有不少用JS的解決辦法,感受都挺麻煩的。
其實用CSS就能夠搞定了:
.vjs-paused .vjs-big-play-button, .vjs-paused.vjs-has-started .vjs-big-play-button { display: block; }
是否是很輕便很簡單 :)
video.js 默認的播放按鈕是圓角矩形,
咱們通常更熟悉播放按鈕爲圓形的:
那麼怎麼改呢?仍是用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
的值也要相應改變
這個是視頻播放的時候用得較多的功能,解決方法以下。
.video-js.vjs-playing .vjs-tech { pointer-events: auto; }
pointer-events
是CSS的一個屬性,用來控制鼠標的動做,具體可參考《CSS裏的pointer-events屬性》。
總有那麼一些情形,咱們須要 video.js 從新載入視頻文件。
好比,當即播放剛上傳的文件。
例如這樣的標籤:
<video id="example_video"> <source id="videoMP4" src="1.mp4" /> </video> <button id="reload">重載</button>
在video.js中,用現成的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(); });
video.js 默認倒序顯示時間,也就是視頻播放的剩餘時間。
要顯示當前的播放時間,以及總共視頻時長,加2行CSS解決:
.video-js .vjs-time-control{display:block;} .video-js .vjs-remaining-time{display: none;}