cocos2dx 3.x simpleAudioEngine 长音效被众多短音效打断问题
假设先play长音效a,然后在a播放过程中反复执行:play短音效b,stop b,play b,... 则若a足够长,就会被b打断。而长音效被打断是最不可接受的。
a之所以会被打断,推测原因是simpleAudioEngine对音源的管理不善,play b, stop b,再play b这个过程中不是重复使用同一个音源,而是不断新地使用下一个音源,当音源耗尽后又绕回,从而导致把a的音源占用,a被迫停止。
在不动simpleAudioEngine底层的情况下,目前还没有找到好的解决办法,当前项目中遇到这种情况采用的办法是,如果有长音效a在播放,就弄一个倒计时,在倒计时未到达0之前,不允许播放音效b。