2013-04-13 108 views
0

當在100間隔內播放相同的長聲音時,幾秒鐘後,我開始出現「無聲硬件或32聲天花板撞擊」錯誤。SoundManager 32聲天花板撞擊錯誤

要瑞普這個問題:

1打開瀏覽器(我用IE10和Chrome)

2-推出的開發工具(F12)並轉到控制檯選項卡。

3-確保音量很低,因爲只要您點擊以下鏈接,聲音就會開始播放。

4-打這個網址:https://googledrive.com/host/0B92G3ib2ozRVcS1RcHI5eGpzOXc/default.htm

5-聲音將開始播放,然後會有一個沉默。在靜音過程中,您將在控制檯中看到錯誤「test:play():沒有聲音硬件或32聲道天花板撞擊聲」。 (SoundManager處於調試模式,因此您會收到很多記錄的訊息)

回答

0

32個同步聲音的限制。如果你每100ms播放一個新的聲音,你將在3.2秒內達到該限制。這就是32聲道天花板的含義。

0

我身邊這個工作通過檢查,如果聲音playState是== 0播放相同的聲音和它的位置設置爲0之前,如果playState是= 0

代碼如下所示:

if (this.sounds[id].playState == 0) { 
    this.sounds[id].play({ volume: this.volume * 100.0 }); 
} else { 
    // if sound is already playing then move it to the beginning 
    this.sounds[id].setPosition(0); 
} 

雖然聽起來有點波濤洶涌。如果有更好的方法來解決這個問題,請讓我知道。