2009-06-17 70 views
3

我有一个简单的问题:我将一个mp3文件加载到一个NSData对象中,然后在我的游戏中使用AVAudioPlayer播放它。每秒钟左右,帧频下降,您可以看到屏幕上出现口吃。这不是一个主要的放缓,但显然明显并扰乱游戏玩法。不使用AVAudioPlayer播放音乐曲目显示没有减慢速度。AVAudioPlayer - Drop in Framerate

我该如何防止这种情况发生?

谢谢。

弗洛里安

回答

7

以供将来参考,这里是解决方案:

设置音频会话类别kAudioSessionCategory_AmbientSound(允许的iPod音乐同时播放)以某种方式禁用MP3硬件加速。将音频类别设置为kAudioSessionCategory_SoloAmbientSound可以解决此问题,但不允许iPod播放。我现在根据是否启用背景音乐来设置音频会话类别,以允许同时播放iPod。

0

中的mp3音乐是编码的/压缩的音频格式。您可以尝试降低采样率(用于测试,而不是128 kb/s尝试64 kb/s)或切换到非编码格式,如线性pcm。缺点是:前者的音频质量较低,后者的文件较大。但是这可以帮助改善您的应用的整体表现。