2016-03-13 63 views
0

我想從站上播放我的網絡音頻流。按loadstart事件消息播放出現LOADING,但在開始播放音頻流之前,大約4或5秒鐘之前將其刪除。我希望事件能夠控制流媒體文件加載的時間。請勿在Android上加載時間流媒體音頻

臺式電腦問題不存在,因爲音頻加載瞬間,但在智能手機中的Chrome瀏覽器和S.O. Android這個問題非常明顯,需要大約6或7秒才能加載。所以我會通過一些事件來控制這個時間。

什麼樣的事件可以用於消息LOADING不會被刪除,直到音頻沒有開始播放?謝謝。

function AudioStart(){ 
    audio = new Audio(); 
    audio.src = "http://listen.XXXX.com/XXXX"; 

    audio.addEventListener("loadstart", function(){ 

document.getElementById('title').innerHTML="<span>LOADING...</span>"; 

; 
},false); 


audio.addEventListener("loadeddata", function(){ 

audio.play(); 

},false); 



} 

回答

1

oncanplay而不是loadeddataoncanplaythrough如果螞蟻,以確保整個音頻被加載。

loadeddata事件時當前幀的數據裝入的發生,但沒有足夠的數據來播放指定的音頻/視頻的下一幀。

canplay事件發生時,瀏覽器就可以開始播放指定的音頻/視頻(當它緩衝到足以開始)

當瀏覽器估計它可以通過指定播放時發生canplaythrough事件音頻/視頻,而不必停下來進行緩衝。

試試這個:

function AudioStart() { 
 
    audio = new Audio(); 
 
    audio.src = "http://www.w3schools.com/html/horse.mp3"; 
 

 
    audio.addEventListener("loadstart", function() { 
 
    document.getElementById('title').innerHTML = "<span>LOADING...</span>"; 
 
    }, false); 
 

 
    audio.addEventListener("canplay", function() { //OR 'oncanplaythrough' 
 
    document.getElementById('title').innerHTML = ""; 
 
    audio.play(); 
 
    }, false); 
 
}
<h3 id='title'></h3> 
 
<button onclick='AudioStart()'>Start Audio</button>

Fiddle here

+0

非常感謝您人造纖維,現在的問題是,該標誌不會被刪除LOADING ...它原地踏步。不應該在音頻開始時刪除? – PlayerWet

+0

檢查編輯... – Rayon

+0

這是我第一次嘗試它,它不起作用,必須有錯誤的人造絲。 看來,該功能停在那裏。奇怪的是,如果他加載了音頻,但不以任何方式刪除消息LOADING ... – PlayerWet