Ios iPhone上的立体声录音

Ios iPhone上的立体声录音,ios,avfoundation,core-audio,audiounit,Ios,Avfoundation,Core Audio,Audiounit,iPhone5有三个话筒——前上方、后上方和底部。我想在录制的同时对它们做一些信号处理。我试了好几天都没有成功 使用AVAudioSession,我可以看到麦克风: NSLog(@"%@", [AVAudioSession sharedInstance].availableInputs); "<AVAudioSessionPortDescription: 0x14554400, type = MicrophoneBuiltIn; name = iPhone Microphone; U

iPhone5有三个话筒——前上方、后上方和底部。我想在录制的同时对它们做一些信号处理。我试了好几天都没有成功

使用AVAudioSession,我可以看到麦克风:

NSLog(@"%@", [AVAudioSession sharedInstance].availableInputs);

  "<AVAudioSessionPortDescription: 0x14554400, type = MicrophoneBuiltIn; name = iPhone Microphone; UID = Built-In Microphone; selectedDataSource = Back>"

NSLog(@"%@", [AVAudioSession sharedInstance].availableInputs[0].inputDataSources);

  "<AVAudioSessionDataSourceDescription: 0x145afb00, ID = 1835216945; name = Bottom>",
  "<AVAudioSessionDataSourceDescription: 0x145b1870, ID = 1835216946; name = Front>",
  "<AVAudioSessionDataSourceDescription: 0x145b3650, ID = 1835216947; name = Back>"
NSLog(@“%@,[AVAudioSession sharedInstance]。可用输入);
""
NSLog(@“%@,[AVAudioSession sharedInstance]。可用输入[0]。输入数据源);
"",
"",
""
我可以使用AVAudioSessionPortDescription
-setPreferredDataSource:error:
从三个选项中的一个进行录制。但我不能同时录制多个。如果我将输入通道数设置为2,则从同一个麦克风获得两个相同的曲目

音频录像机有一个属性
channelAssignments
,它似乎应该可以工作,但是音频会话
inputNumberOfChannels
maximumInputNumberOfChannels
都是1。属性
channelAssignments
专为具有多个声道的辅助话筒设计

我试着使用低电平音频单元,但得到了相同的结果。我在AudioUnit上找不到任何属性来更改输入源


如果有任何帮助,我们将不胜感激。

我的理解是,在我进行了所有的研究之后,我试图做同样的事情,这正是您所描述的——您不能为一台设备选择多个数据源,因此您不能一次从多个内置麦克风录制。如果有人能证明我错了,我很想听

旁注:我似乎无法运行你的代码。如前所述,我得到

Property availableInputs not found on object of type 'id'
即使在将您得到的内容转换为不需要任何显式转换的格式后:

NSLog(@"%@", [[[AVAudioSession sharedInstance] availableInputs][0] inputDataSources]);
我得到了西格伯特:

-[AVAudioSessionPortDescription inputDataSources]: unrecognized selector sent to instance 0xd59dbe0'

您使用的是什么SDK,您的代码实际上可以编译,更不用说运行了?

我想您需要≥ iOS 7.0(请参阅)。我所有的经验都与使用iOS 7 SDK有关,因此单凭iOS 7 SDK还不足以回答我的问题,但可能我遗漏了一些更具体的内容。是否在iOS 8甚至iOS 9 Beta中尝试过?我也对同时记录两个来源感兴趣。