最近新游戏的开发缓了缓,这几天都在给一个刚上线的游戏调试,改bug。
有一个bug折腾了我们好久;安卓机上表现正常,有IOS端用户反应音频听起来有杂音,偶尔会有音频被拖长的现象(在实际测试中偶尔出现,只不过没来得及修改)
经过查阅资料和验证,发现CocosCreator的cc.audioEngine竟然是使用苹果的音乐播放器播放音乐的。。。
由于苹果对于音频的兼容性较差,只能play后在加载音频,使用domaudio加载音频会有延迟并且不能动态调整音量;相比较后选择了webaudio,而webaudio则经常出现有杂音的情况。
终于在stackoverflow上找到了答案:
个人认为应该是个ios的bug(也许是特殊处理?谁让人家是苹果呢。)
游戏开头的视频音频采样率是22khz,背景音乐采样率48khz,人物语音采样率44.1khz。
产生bug的原因是:开头的视频播放后将sample rate改成了22khz,再播放其它更高音效会出现拖长音的情况,同理如果跳过游戏开头的视频,直接播放背景音乐,那么播放采样率较低的人物语音时,会出现杂音(失真)。
解决方案
游戏中的所有音频的采样率都改为44.1khz。
==========================================
又出现了杂音的问题,原因是creator里面的update调用了cc.audioEngine.setVolume(); 去掉就好了。。。具体原因不知(玄学)。