2010-12-14 307 views
11

我在HTML5音頻中實現聲音效果,但過了一段時間,它只是停止播放任何音頻。文件類型是正確的,因爲它啓動正常,但似乎放棄。HTML5音頻隨機播放

var sound = new Audio(url); 
function play() {   
    sound.play(); 
} 

有沒有更好的方法來做到這一點,所以它一直播放聲音?

這是我的實施的鏈接。易於重複按空格鍵很多,直到它最終放棄(也射燈添加聲音)。 http://craftyjs.com/elevatoraction/

這在Chrome的最新版本時,我(8.0)

編輯:我一樣高拉夫建議,只播放的每一個聲音文件的同一個實例,但同類問題存在。它會任意停止播放。

編輯2:我剛纔注意到,每當我嘗試播放聲音時,networkState總是1根據this這意味着它不能完全加載。這是奇怪的,因爲它仍然有時播放,即使它播放networkState總是1

+1

。 – 2010-12-14 01:10:54

回答

6

不要在每次你想播放聲音時重新創建一個音頻對象,重複使用相同的資源。

var sound1 = new Audio(url); 
function playSound1() { 
    sound1.play(); 
} 

我覺得這是你應該指定瀏覽器版本(S)和你再現問題上的操作系統版本(S)相關的bug http://code.google.com/p/chromium/issues/detail?id=57070

+0

哦,所以這是一個錯誤。我怎麼會同時播放相同的聲音? – Louis 2010-12-14 02:05:07

+0

那麼你必須使用多個音頻對象。而且你必須管理它們,以便創建你實際需要的最小數量。無論如何,直到錯誤得到解決。 – Gaurav 2010-12-14 02:16:23

+0

聽起來不錯。這是否意味着我必須爲每個文件創建大約2或3個音頻對象並檢查哪些正在播放。我很難找到很好的文檔來說實話。 – Louis 2010-12-14 02:20:13