它取決於您的目標瀏覽器及其當前W3C工作草案HTML5規範Media Element部分的實現。
您可以隨時檢查,如果你的目標瀏覽器支持這裏的某些事件:http://www.w3.org/2010/05/video/mediaevents.html
否則,如果數據不來通過,那麼,我相信,音頻不會被緩衝和stalled
事件將觸發。
如果數據正在通過,那麼您應該能夠檢查suspend
或progress
事件,無論數據何時被緩衝(但不一定是暫停/播放),都應該觸發這兩個事件。
:
如果這些事件不燒,因爲瀏覽器不支持他們,你總是可以使用一個計時器,它實際上告訴你,如果音頻緩衝或不檢查音頻元素的networkState
屬性HTML:
<!DOCTYPE html>
<html>
<body>
<audio controls="controls" id="myAudio">
<source src="http://www.w3schools.com/html5/horse.ogg" type="audio/ogg">
Your browser does not support the audio element.
</audio>
</body>
</html>
的Javascript:
var audioElement = document.getElementById('myAudio');
var checkNetworkStateTimer = setInterval(function() {
console.log(audioElement.networkState); //2 indicates NETWORK_LOADING state
}, 250);
也談的jsfiddle:http://jsfiddle.net/3sdhj/2/
你可能將無法重現2
一個networkState
作爲音頻上的jsfiddle太短樣品,不過你的想法。
如果它仍然失敗,我會去一個流行的HTML5音頻庫,如SoundJS
,Buzz
或soundmanager2
(我絕不隸屬於這些庫)。
請注意,本網站特別有用:http://www.longtailvideo.com/html5/buffering 圖書館無法提供幫助。 –
@Omar Mir我沒有發現那個網站,很好找到跨瀏覽器的支持。 –
謝謝。不幸的是,不同的供應商設置它的方式我不能使用任何東西來顯示我的用戶音頻緩衝。我會向他們展示一個進度條,其中緩衝量爲百分比。我所能做的 –