SoundManager 32声音天花板命中错误

时间:2013-04-13 07:06:24

标签: soundmanager2

当在100个间隔内播放相同的长音时,几秒钟后我开始得到“没有声音硬件或32声音天花板击中”错误。

重现此问题:

1-打开浏览器(我使用的是IE10和Chrome)

2-启动其开发人员工具(F12)并转到“控制台”选项卡。

3-确保音量很低,因为只要您点击以下链接就会开始播放声音。

4-点击此网址:https://googledrive.com/host/0B92G3ib2ozRVcS1RcHI5eGpzOXc/default.htm

5-声音将开始播放,然后会有一个沉默。在沉默期间,您将在控制台中收到错误“test:play():没有声音硬件或32声音天花板”。 (SoundManager处于调试模式,因此您之前会收到大量记录的消息)

2 个答案:

答案 0 :(得分:0)

同时有32个声音限制。如果你每100毫秒播放一个新的声音,你将在3.2秒内达到这个极限。这就是32音天花板意味着什么。

答案 1 :(得分:0)

我通过在播放相同的声音之前检查声音playState是否= = 0并且如果playState是!= 0将其位置设置为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); 
} 

虽然声音有点不稳定。如果有更好的解决方法,请告诉我。