[英]Pausing a HTML5 Audio element causes the entire file to be downloaded
我的情況是有一個頁面上有許多音頻元素,其中一些很長(最多約2小時)。 從本質上講,它們是如此創建和控制的:
var a = new Audio();
a.preload = 'metadata';
a.src = 'long-track.mp3';
a.play();
當它播放時,瀏覽器(在這種情況下為Chrome)正確地發出范圍請求,服務器返回“206 Partial Content”,一次看起來大約2分鍾的數據。 加載~2mb的數據后,它會停止請求數據。 到現在為止還挺好。 然后,執行:
a.pause();
這會導致瀏覽器下載文件的整個剩余部分。 (!!?!〜@ !!!?)顯然,如果用戶決定收聽幾首曲目的前幾秒,這可能是一個問題:他們開始下載數十億字節的不需要的數據。
我已經看到了一些其他問題,詢問如何強制整個文件被緩沖 ,但我實際上想要完全相反。
雖然應該有,但沒有正式的功能可以做到這一點,但似乎普遍的共識是以下代碼是做你想要的最好的方法
a.src = '';
a.load();
jPlayer 實現此方法以停止音頻緩沖。 唯一的問題是,此方法可能存在跨瀏覽器問題 。 如果沒有這個,你可以嘗試從頁面中刪除音頻元素,你試過嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.