我有一个性能密集型的 iPhone 游戏,我想添加声音。似乎有大约三个主要选择:(1)AVAudioPlayer
,(2)音频队列和(3)OpenAL。我讨厌写几页低级代码只是为了播放示例,所以我想使用AVAudioPlayer
. 问题是它似乎扼杀了性能——我已经做了一个简单的测量CFAbsoluteTimeGetCurrent
,play
消息似乎需要 9 到 30 毫秒才能完成。考虑到 25 ms == 40 fps,这非常悲惨。
当然,有一种prepareToPlay
方法可以加快速度。这就是为什么我编写了一个简单的类,它保留了几个AVAudioPlayer
s 供其使用,预先准备好它们,然后使用准备好的播放器播放样本。没有雪茄,仍然需要我上面提到的约 20 毫秒。
这样的性能对于游戏来说是无法使用的,那么你用什么来在 iPhone 上播放性能不错的声音呢?我做错了AVAudioPlayer
什么吗?您是否使用音频队列播放声音?(在 2.2 发布之前,我已经写过类似于 AVAudioPlayer 的东西,我很乐意保留这种经验。)你使用 OpenAL 吗?如果是,是否有一种简单的方法可以使用 OpenAL 播放声音,或者您是否必须编写代码页?
更新:是的,用 OpenAL 播放声音相当简单。