使用AVAudioPlayer同时播放多个声音

4

有没有人能帮我写一个函数,使多个AVAudioPlayer同时播放?目前,如果有12个按钮被激活,我试图让总共12个AVAudioPlayer同时播放,但是会有延迟,听起来像是有人在钢琴上滑动手指而不是同时按下所有键。

我查看了音频队列服务(Audio Queue Services),但不知道如何将其实现到代码中,尽管它可以播放同步声音。我不确定如何设置所有内容,我正在尝试重新制作一个 Tone Grid 应用程序。


请展示一下你的工作进展。 - jscs
1
你能否只使用最多12个轨道来构建AVComposition?或者需要在其他声音已经播放时启动其中一个声音?您是否需要停止某个声音?您知道它要播放多长时间吗?如果您可以处理fire-and-forget,那么系统声音可能适合您。您正在隐式混音,在iOS上最适合的混音API是AUMultichannelMixer音频单元,但您似乎还不太熟悉,而音频单元则相当复杂。 - invalidname
2个回答

4

虽然这很有趣,但它并不是问题的答案(无论问题有多么模糊)。 - bentford
1
我所做的是超越问题本身,去解决实际的问题。 - P i

0
你是否在所有12个AVAudioPlayer实例上调用了prepareToPlay方法?根据文档:“调用此方法会预加载缓冲区并获取硬件,以最小化延迟。”
请参阅AVAudioPlayer类参考。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接