问题描述
我想同时录制来自多个麦克风的音频(Macbook 内置麦克风 + 连接的外部麦克风)。
然而,AVAudioEngine
只有一个 inputNode
。是否可以创建和附加代表特定输入设备的其他节点?
解决方法
您可以进入 Audio Midi Setup.app
创建一个包含要从中记录的两个设备的聚合设备,然后将该聚合设备设置为默认输入。
点击输入节点将为您提供包含从两个设备录制的音频的缓冲区,作为奖励,音频将同步!
手动聚合设置也可以通过 Core Audio 完成。
或者,您可以简单地使用 Core Audio 的 RemoteIO
AudioUnit
从两个单独的设备进行录音。在这种情况下,您将负责时间戳匹配。这两种方法各有利弊。我自己的反模式是编写一个 AVAudioEngine
解决方案,然后将其替换为 Core Audio。
