文章出處

對于一個成功的產品,它是對外封閉的,但又是對外開放的,這句話并不矛盾,讓我來說一下,說它對外封閉是因為它本身的代碼不允許你去修改,而說它開放,是因為它為我們定義了很多API,或者叫回調方法,對于jwplayer來說,它為我們提供了很多js的回調方法(事件),它被包含在events屬性上的.

應用場合

播放時記錄當前視頻的時間,播放完成時寫入完成的時間,像這些功能,我們都可以通過事件回調的方法解決,即為events屬性賦相應的值.

注意

測試時,jwplayer需要在正式網站上測試,而本地打開時,它的events屬性是不啟作用的

events 實例

 var player = jwplayer("mediaplayer").setup({
            flashplayer: "player.swf",
            file: 'http://localhost/222.mp4',
            autostart: "true",
            bufferlength: '20',
            width: '400',
            height: '400',
            image: '111.jpg',
            events: {
                onComplete: function () { console.log("播放結束!!!"); },
                onVolume: function () { console.log("聲音大小改變!!!"); },
                onReady: function () { console.log("準備就緒!!!"); },
                onPlay: function () { console.log("開始播放!!!"); },
                onPause: function () { console.log("暫停!!!"); },
                onBufferChange: function () { console.log("緩沖改變!!!"); },
                onBufferFull: function () { console.log("視頻緩沖完成!!!"); },
                onError: function (obj) { console.log("播放器出錯!!!" + obj.message); },
                onFullscreen: function (obj) { if (obj.fullscreen) { console.log("全屏"); } else { console.log("非全屏"); } },
                onMute: function (obj) { console.log("靜音/取消靜音") }
            }
        });

其它回調方法

 player.onBufferChange(function () { alert("緩沖改變!!!"); });
        player.onBufferFull(function () { alert("視頻緩沖完成!!!"); });
        player.onError(function (obj) { alert("播放器出錯!!!" + obj.message); })
        player.onFullscreen(function (obj) {
            if (obj.fullscreen) { alert("全屏"); }
            else { alert("非全屏"); }
        });
        player.onMute(function (obj) { }) // obj. mute是否靜音
        player.onPlaylist(function (obj) { //視頻列表載入完成
            alert(obj.playlist[0]['file']);
        });
        var callback = function () { alert("callback");};//定義一個回調方法
        player.onPlaylistItem(callback) // 開始播放一個視頻時觸發obj.index為視頻索引
        player.onReady(callback) //準備就緒
        player.onResize(callback) //obj.width obj.height  寬高
        //進入播放時觸發obj.oldstate 值:從BUFFERING PAUSE狀態進入播放狀態
        player.onPlay(callback)
        //進入暫停obj.oldstate 值1:從PLAYING BUFFERING狀態進入暫停
        player.onPause(callback)
        player.onBuffer(callback) //進入加載obj.oldstate 值PLAYING, PAUSED or IDLE
        player.onIdle(callback) //進入空閑obj.oldstate 值PLAYING, PAUSED or BUFFERING.
        player.onComplete(callback) //結束播放
        player.onVolume(callback) //obj.volume
        player.onPlay(function () {
            console.log(this.getPosition());
        });

技巧

我們看到上面的player是它當前的jwplayer對象,有了這個對象,我們就可以在程序的其它位置調用jwplayer的相關回調方法了,如果你沒有定義player對象,也可以通過索引

的方式去訪問jwplayer實例,如jwplayer(0)表示第一個jwplayer對象.

相關截圖

 


文章列表




Avast logo

Avast 防毒軟體已檢查此封電子郵件的病毒。
www.avast.com


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()