【发布时间】:2020-02-13 16:24:50
【问题描述】:
所有最近的 iPhone 都有 2 个以上的麦克风。是否可以同时从所有麦克风录制?如果可能的话,最好的 iOS 音频库是什么(AudioKit、EzAudio、AudioUnits、CoreAudio)? AudioKit 和 EzAudio 中没有提及此功能。
【问题讨论】:
标签: ios core-audio audiounit audiokit ezaudio
所有最近的 iPhone 都有 2 个以上的麦克风。是否可以同时从所有麦克风录制?如果可能的话,最好的 iOS 音频库是什么(AudioKit、EzAudio、AudioUnits、CoreAudio)? AudioKit 和 EzAudio 中没有提及此功能。
【问题讨论】:
标签: ios core-audio audiounit audiokit ezaudio
我在文档中没有看到任何关于多麦克风音频捕获可能的内容。 They specify that you can choose a specific microphone 但不是说您可以同时选择多个。 AVAudioSession 也是一个单例。
看起来,at least as of iOS 10,AVCaptureSession 也只允许同时输入一个音频或视频。
【讨论】:
既然你可以record stereo audio,你绝对可以同时从多个麦克风录制。此外,由于噪声消除可能使用了 1 个以上未参与立体声录音的麦克风,因此很可能会“录音”或至少同时使用所有麦克风。
但是,我认为问题的主要症结在于我们是否可以同时分别获取每个麦克风的音频输入。正如 Dare 指出的那样,标准 API 不支持这一点。
但是,假设存在从麦克风源(例如顶部/底部)到音频通道(左/右)的一对一映射,则存在理论上的解决方案……
只需以立体声、separate out the left/right channels 和中提琴录制,您可以分别从每个麦克风获取输入。我还没有对此进行测试,但理论上它似乎应该可以工作。
如果您特别想知道哪个通道对应哪个麦克风,您可能需要检查设备方向,并根据设备类型制作一个麦克风位置表。例如:
if orientation == landscapeLeft && device == iPhoneX {
print(“the right audio channel source is the Face ID microphone”)
print(“the left audio channel source is the dock connector microphone”)
} …
【讨论】: