当在100个间隔内播放相同的长音时,几秒钟后我开始得到“没有声音硬件或32声音天花板击中”错误。
重现此问题:
1-打开浏览器(我使用的是IE10和Chrome)
2-启动其开发人员工具(F12)并转到“控制台”选项卡。
3-确保音量很低,因为只要您点击以下链接就会开始播放声音。
4-点击此网址:https://googledrive.com/host/0B92G3ib2ozRVcS1RcHI5eGpzOXc/default.htm
5-声音将开始播放,然后会有一个沉默。在沉默期间,您将在控制台中收到错误“test:play():没有声音硬件或32声音天花板”。 (SoundManager处于调试模式,因此您之前会收到大量记录的消息)
答案 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);
}
虽然声音有点不稳定。如果有更好的解决方法,请告诉我。