有没有办法让RemoteIO单元在iPhone 5上拿起后置麦克风?我可以将AVAudioSession配置为在前麦克风和底部麦克风之间进行选择,但我无法找到选择后麦克风的方法。
当然,AVFoundation framework在使用后摄像头时使用后麦克风进行录像记录,但我想要一种使用CoreAudio选择同样的方法。这有可能吗?
发布于 2013-05-16 08:15:24
将kAudioSessionProperty_Mode设置为带有AudioSessionSetProperty的kAudioSessionMode_VideoRecording使用离摄像机最近的麦克风,后者应该是后置麦克风。这是如果您使用音频会话服务。如果您正在使用AVAudioSessionModeVideoRecording进行记录,请使用AVFoundation。医生说:“使用这种模式可能会导致系统提供适当的音频信号处理。”我把它当成“我们也可以用其他的麦克风来消除噪音”。
发布于 2013-10-19 06:42:24
使用AVAudioSession获取可用的输入。在我的iPhone 5上,它看起来是这样的。
NSLog(@"%@", [AVAudioSession sharedInstance].availableInputs);
"<AVAudioSessionPortDescription: 0x14554400, type = MicrophoneBuiltIn; name = iPhone Microphone; UID = Built-In Microphone; selectedDataSource = Back>"然后使用这些输入中的一个获得availableDataSources,如下所示。
NSLog(@"%@", [AVAudioSession sharedInstance].availableInputs[0].dataSources);
"<AVAudioSessionDataSourceDescription: 0x145afb00, ID = 1835216945; name = Bottom>",
"<AVAudioSessionDataSourceDescription: 0x145b1870, ID = 1835216946; name = Front>",
"<AVAudioSessionDataSourceDescription: 0x145b3650, ID = 1835216947; name = Back>"现在,您可以设置首选数据源。
AVAudioSessionPortDescription *port = [AVAudioSession sharedInstance].availableInputs[0];
for (AVAudioSessionDataSourceDescription *source in port.dataSources) {
if ([source.dataSourceName isEqualToString:@"Back"]) {
[port setPreferredDataSource:source error:nil];
}
}https://stackoverflow.com/questions/14446640
复制相似问题