我目前使用video.js處理來自html5視頻的閃回回退。當用戶點擊我網站上的縮略圖時,我動態地(使用js/jquery)創建並將所需的html插入jquery ui對話窗口,然後顯示視頻,使用html5或flash後退。以下是相關代碼:使用video.js動態創建視頻標籤
//setup jquery ui dialog window
$("div#video_box").dialog({
autoOpen: false,
modal: true,
width: 'auto',
resizable: false,
draggable: true,
close: function() {
$("video").remove()
}
});
//the following code runs after a video thumbnail click event.
{
var $videoBox = $("div#video_box"),
url = VIDEOSTORAGE + id , //url to s3 storage bucket + id of the video/thumbnail that was clicked
html ="";
html += "<video id='downloadedVideo_"+id+"' class='video-js vjs-default-skin' width='320' height='240' controls preload='auto' width='640' height='264' poster='"+PHOTOSTORAGEMEDIUM + id'>";
html += "<source src='"+url+".mp4' type='video/mp4' />";
html += "</video>";
$videoBox.html(html);
$("#downloadedVideo_"+id).load();
$videoBox.dialog("open");
_V_("downloadedVideo_"+id); //initialize video player
}
此代碼在所有瀏覽器首次單擊視頻縮略圖時都能正常工作。當用戶點擊他已經觀看的視頻的視頻縮略圖時,我的bug就會觸發。
在FF中,第二遍我收到了「沒有支持MIME類型的視頻」錯誤。第二遍Chrome和Safari都加載並播放視頻;但是使用默認的html5播放器而不是video.js播放器。
我認爲我的問題是,video.js必須使用唯一的視頻標籤ID進行初始化,並且第二次用戶單擊視頻縮略圖時,我的代碼嘗試使用視頻標籤ID初始化播放器已使用。
有誰知道一個乾淨的方法來避免這個問題?
在此先感謝您的幫助。