使用 AVAudioPlayer 同时播放多个声音

Posted

技术标签:

【中文标题】使用 AVAudioPlayer 同时播放多个声音【英文标题】:Playing multiple sounds simultaneously with AVAudioPlayer 【发布时间】:2011-06-08 23:46:23 【问题描述】:

有人可以帮助我同时触发多个AVAudioPlayers 的功能吗?现在,如果激活了 12 个按钮,我正在尝试让总共 12 个 AVAudioPlayers 立即触发,但是有一个延迟,听起来有人正在用手指向下弹钢琴而不是一次敲击所有琴键.

我查看了音频队列服务,无法理解如何在代码中实际实现它,但它说它可以播放同步声音。我不确定如何设置所有这些。我正在尝试重新制作 Tone Grid 应用程序。

【问题讨论】:

请展示你目前的作品。 您能构建一个最多包含 12 个音轨的 AVComposition 吗?或者您是否需要在其他声音已经播放后才能启动其中一种声音?您是否需要停止声音?你知道要玩多久吗?如果您可以处理即发即弃,系统声音可能适合您。你在隐式混音,ios 上最合适的混音 API 是 AUMultichannelMixer 音频单元,但你听起来很绿色,而且音频单元很硬核。 【参考方案1】:

你为什么不用http://www.hollance.com/2011/02/soundbankplayer-using-openal-to-play-musical-instruments-in-your-ios-app/

你有一个和弦播放器,编码精美,准备好摇滚!

不久前我在我的第一个应用程序中使用了它:http://itunes.apple.com/gb/app/chordwheel-pro/id406836326?mt=8

【讨论】:

虽然这很有趣,但这并不是问题的答案,(无论问题多么模糊。) 我所做的就是超越问题的实际问题,并解决这个问题。【参考方案2】:

您是否在所有 12 个 AVAudioPlayer 实例上调用方法 prepareToPlay。来自文档:“调用此方法,预加载缓冲区并获取硬件,以最大限度地减少延迟。”

请参阅AVAudioPlayer 类参考。

【讨论】:

以上是关于使用 AVAudioPlayer 同时播放多个声音的主要内容,如果未能解决你的问题,请参考以下文章

使用 AVAudioPlayer 播放多个声音(一个接一个)

使用 AVAudioPlayer 一次播放多个声音

同时使用 AVAudioRecorder 和 AVAudioPlayer (或另一种收听和播放声音的方式)

同步Iphone中两个或多个AVAudioPlayer的播放

(iphone) 如何使用 AVAudioPlayer 顺序播放声音?

Swift 3 多个 AVAudioPlayer