我正在为iphone编写游戏,没有背景音乐,它以30 fps的速度运行。但是如果我添加音乐(使用AudioQueues或AVAudioPlayer,两者都有相似的效果),帧速率会定期下降到10(大约每秒一次),然后返回30.音乐是mp3 @ 128kps,44kHz。它不是经常降低性能,而是在某些时刻,这会导致非常不稳定的游戏玩法。有人遇到过这样的问题吗?有没有办法让cpu加载mp3解码/播放更均匀?我宁愿在大多数情况下持续29 fps而不是30 fps,每秒10次。
答案 0 :(得分:1)
也许你可以提高渲染线程的优先级?或者将它带入另一个Run Loop(如果你正在做动画的话)。
答案 1 :(得分:1)
几点想法:
1)尝试将文件转换为其他格式并查看是否仍有此问题可能有效。我使用CAF文件取得了很大的成功,只需对它们进行转换即可。
afconvert -f caff -d ima4 <your mp3 file>
2)此外,减速和跟踪变化之间是否有任何联系?在更换曲目(或重新启动曲目)时,我经常看到类似的事情。我认为这与从'disk'读取文件所需的负载有关。
答案 2 :(得分:1)
这很可能是因使用AmbientSound
音频会话类别引起的,请参阅this question。您可以通过切换到SoloAmbientSound
类别轻松解决问题。
答案 3 :(得分:0)
您需要分析您的应用。
无论比特率如何,我都得到60fps。
答案 4 :(得分:0)
如果您向我们展示您的代码,那将是最好的。您是否已检入音频缓冲区选项,它可能不是您需要的最佳选择。您对音频单元感到满意吗?