2012-12-03 129 views
1

我正在構建一個視頻播放列表。每次用戶點擊一個新項目,我想停止下載當前視頻(如果它仍在進行中),它​​開始下載新視頻之前。取消html5視頻下載

下面是我可以想出的代碼。它部分起作用,但當我調用destroyVideo()方法時,似乎沒有任何下載被​​取消。我使用Chrome的網絡監視器來檢查。

function createVideo(videoObject) { 
    var html = '<video id="video" loop><source id="mp4" src="' + video.mp4 + '" type="video/mp4" /><source id="webm" src="' + video.webm + '" type="video/webm" /><source id="ogg" src="'+ video.ogg + '" type="video/ogg" /></video>'; 

    var videoContainerDiv = $('#videoContainerDiv');  
    videoContainerDiv.append(html); 

    var asset = $('#video'); 
    asset.get(0).load(); 
} 


function destroyVideo() { 
    var asset = $('#video'); 

    var mp4 = $('#mp4'); 
    mp4.attr('src', ''); 

    var webm = $('#webm'); 
    webm.attr('src', ''); 

    var ogg = $('#ogg'); 
    ogg.attr('src', ''); 

    asset.attr('src', ''); 
    asset.get(0).load(); 

    var videoContainerDiv = $('#videoContainerDiv'); 
    videoContainerDiv.empty(); 
} 

我的問題是:有沒有一種更有效的方式來做到這一點,跨瀏覽器?

幫助非常感謝!

+0

嘗試將'video'標記的'src'屬性設置爲'''''。 –

+0

謝謝@RocketHazmat。其實我已經嘗試過了。沒有運氣。 – Izaias

回答

1
function destroyVideo() { 
    var asset = $('#video'); 
    asset.remove(); 
} 
+0

與使用jQuery的empty()方法相同。元素元素確實從DOM中刪除,但視頻仍在Chrome的網絡監視器中下載。 – Izaias

+0

有沒有其他想法? – Izaias

+0

看看這個http://jsfiddle.net/axrwkr/sxCH4/它使用iframe來包含視頻,然後當你按下停止按鈕時刪除iframe。我從http://stackoverflow.com/questions/4071872/html5-video-force-abort-of-buffering得到了它的想法,它似乎停止下載視頻,但也許我應該嘗試一些不同的格式和更大的文件 – 2012-12-04 22:20:08