簡體   English   中英

暫停HTML5 Audio元素會導致整個文件被下載

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM