videojs的使用

[官網]http://www.videojs.com/javascript

videojs就提供了這樣一套解決方案,他是一個兼容HTML5的視頻播放工具,早期版本兼容全部瀏覽器,方法是:提供三個後綴名的視頻,並在不支持html5的瀏覽器下生成一個flash的版本。css

最新的版本
下載-5.8.0-releases版本html

目錄結構

video.js/
├── alt
│   ├── video.novtt.js
│   ├── video.novtt.min.js
│   └── video.novtt.min.js.map
├── examples/
├── font
│   ├── VideoJS.eot
│   ├── VideoJS.svg
│   ├── VideoJS.ttf
│   └── VideoJS.woff
├── ie8
│   ├── videojs-ie8.js
│   └── videojs-ie8.min.js
├── lang/
├── video-js-5.8.0.zip
├── video-js.css
├── video-js.min.css
├── video-js.swf
├── video.js
├── video.js.map
├── video.min.js
└── video.min.js.map
  1. 引用腳本,videojs很爲你着想,直接cdn了,你都不須要下載這些代碼放入本身的網站html5

    <link href=」http://vjs.zencdn.net/c/video-js.css」 rel=」stylesheet」>
    <script src=」http://vjs.zencdn.net/c/video.js」></script>
  2. 若是須要支持IE8,這個js能夠自動生成flashjava

    <!-- If you'd like to support IE8 -->
    <script src="http://vjs.zencdn.net/ie8/1.1.2/videojs-ie8.min.js"></script>
  3. 頁面中加入一個Html5的video標籤ios

    <video id="my_video_1" class="video-js vjs-default-skin" 
        controls preload="auto" width="640" height="264" poster="my_video_poster.png" data-setup="{}">
        <source src="my_video.mp4" type="video/mp4">
        <source src="my_video.webm" type="video/webm">
    </video>

其中post就是視頻的縮略圖,那倆source一個指向mp4視頻,一個指向webm視頻,在頁面加載過程當中,video.js會判斷瀏覽器支持哪一個格式視頻,會自動加載可播放的視頻。
簡單吧!git

進階:使用api

獲取對象:
後面那個就是就是video標籤的id值,這是myPlayer就是播放器對象了。github

videojs("my-video").ready(function(){
    window.myPlayer = this;
    // EXAMPLE: Start playing the video.
    myPlayer.play();
});

方法:

獲取對象web

var videoObj = videojs(「videoId」);api

ready:

myPlayer.ready(function(){
    //在回調函數中,this表明當前播放器,
    //能夠調用方法,也能夠綁定事件。
})

播放:

myPlayer.play();

暫停:

myPlayer.pause();

獲取播放進度:

var whereYouAt = myPlayer.currentTime();

設置播放進度:

myPlayer.currentTime(120);

視頻持續時間,加載完成視頻才能夠知道視頻時長,且在flash狀況下無效

var howLongIsThis = myPlayer.duration();

緩衝,就是返回下載了多少

var whatHasBeenBuffered = myPlayer.buffered();

百分比的緩衝

var howMuchIsDownloaded = myPlayer.bufferedPercent();

聲音大小(0-1之間)

var howLoudIsIt = myPlayer.volume();

設置聲音大小

myPlayer.volume(0.5);

取得視頻的寬度

var howWideIsIt = myPlayer.width();

設置寬度:

myPlayer.width(640);

獲取高度

var howTallIsIt = myPlayer.height();

設置高度:

myPlayer.height(480);

一步到位的設置大小:

myPlayer.size(640,480);

全屏

myPlayer.enterFullScreen();

離開全屏

myPlayer.enterFullScreen();

添加事件

durationchange
ended //播放結束
firstplay
fullscreenchange
loadedalldata
loadeddata
loadedmetadata
loadstart
pause //暫停
play  //播放
progress
seeked
seeking
timeupdate
volumechange
waiting
resize inherited

var myFunc = function(){
// Do something when the event is fired
};

事件綁定

myPlayer.on("ended", function(){
    console.log("end", this.currentTime());
});
myPlayer.on("pause", function(){
    console.log("pause")
});

刪除事件

myPlayer.removeEvent(「eventName」, myFunc);

雖然文章說明在不支持html5的狀況下,會以flash播放,但在支持html5的firefox下播放mp4時,卻遇到很大的困難,雖然調用了flash,但一直沒法播放(不過我也一直懷疑個人firefox下的flash有問題,不知道是否是真的)。不過若是你遵從videojs的建議,放兩個格式的視頻,就不會有這個問題了。

另外video的寫法中還有專門針對flash的寫法,固然你也能夠用這個插件實現純粹的flash播放(只寫flash那部分就好,能夠保證統一的瀏覽效果,不過iOS的瀏覽器不兼容flash,這就要你本身進行判斷來處理

一個播放器demo

相關文章
相關標籤/搜索