我正在尝试创建一个应用,该应用播放从文件加载的多个样本(类似于iPhoneMultichannelMixer样本应用),同时记录来自麦克风或线路输入的用户输入,并将所有立体声格式的内容保存(记录)到文件中。

在体系结构上,我有一个混音器AudioUnit,它接收不同的样本作为输入,将它们混合并通过IORemote播放。 IORemote麦克风输入正被另一个回调捕获以进行记录。问题是-如何记录麦克风输入以及混音器AudioUnit输出总线上正在播放的内容?

我可以简单地将我从麦克风中获得的声音混合到同一混音器中,然后将混音器连接到IORemote以及其他将处理混合信号记录的AudioUnit(哪种类型?)?是否可以同时进行?我应该按顺序执行吗?首先将混音器连接到录制的AudioUnit(哪个?),然后再连接到IORemote进行播放?我应该/可以使用AudioQueue记录调音台的输出吗?

我意识到这有很多问题,但是搜索并没有带来任何积极的结果,因此请欣赏任何方向。

最佳答案

我以前做过。

他们这样做的方式是通过在混音器中创建另一条总线来实现声音,该总线从remoteIO(尤其是从麦克风)渲染其数据。然后在混音器的输出端添加一个AudioRenderNotify,以捕获所有组合的音频。在此回调中,我设置了ExtAudioFileWriteAsync和Voila!将所有音频合并并保存到文件中。

您甚至可以即时使用压缩音频。 AAC Apple甚至是简单的LinearPCM(Wave,Aiff)都很简单

关于ios - 从MultiChannelMixer AudioUnit同时录制和播放,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12941338/

10-13 04:07