我有一个简单的问题:我正在将一个 mp3 文件加载到一个 NSData 对象中,然后在我的游戏中使用 AVAudioPlayer 播放它。每隔一秒左右,帧速率就会下降,您会在屏幕上看到卡顿。这不是一个重大的放缓,但明显明显并破坏了游戏玩法。不使用 AVAudioPlayer 播放音乐曲目完全没有减速。
我怎样才能防止这种情况发生?
谢谢你。
弗洛里安
我有一个简单的问题:我正在将一个 mp3 文件加载到一个 NSData 对象中,然后在我的游戏中使用 AVAudioPlayer 播放它。每隔一秒左右,帧速率就会下降,您会在屏幕上看到卡顿。这不是一个重大的放缓,但明显明显并破坏了游戏玩法。不使用 AVAudioPlayer 播放音乐曲目完全没有减速。
我怎样才能防止这种情况发生?
谢谢你。
弗洛里安
为了将来参考,这里是解决方案:
将音频会话类别设置为 kAudioSessionCategory_AmbientSound(以允许 iPod 音乐同时播放)会以某种方式禁用 MP3 硬件加速。将音频类别设置为 kAudioSessionCategory_SoloAmbientSound 可以解决此问题,但不允许 iPod 播放。我现在确实根据背景音乐是启用还是禁用来设置音频会话类别,以允许同时播放 iPod。
mp3 是一种编码/压缩的音频格式。您可以尝试降低采样率(例如,尝试 64 kb/s 而不是 128 kb/s)或切换到非编码格式,例如线性 pcm。缺点是:前者的音频质量较低,后者的文件大小较大。但这有助于提高应用的整体性能。