Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/44.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在iPhone 5上选择Back麦克风_Iphone_Avfoundation_Core Audio_Audiounit_Remoteio - Fatal编程技术网

在iPhone 5上选择Back麦克风

在iPhone 5上选择Back麦克风,iphone,avfoundation,core-audio,audiounit,remoteio,Iphone,Avfoundation,Core Audio,Audiounit,Remoteio,有没有办法让RemoteIO单元拾取iPhone 5上的背面麦克风?我可以将AVAudioSession配置为在前麦克风或底部麦克风之间进行选择,但我找不到选择后麦克风的方法 使用后置摄像头时,AVFoundation framework当然会使用后置麦克风进行视频录制,但我想用CoreAudio来选择相同的方式。这可能吗?将kAudioSessionProperty\u模式设置为kAudioSessionMode\u录像与AudioSessionSetProperty一起使用离摄像机最近的麦克

有没有办法让RemoteIO单元拾取iPhone 5上的背面麦克风?我可以将
AVAudioSession
配置为在前麦克风或底部麦克风之间进行选择,但我找不到选择后麦克风的方法


使用后置摄像头时,
AVFoundation framework
当然会使用后置麦克风进行视频录制,但我想用CoreAudio来选择相同的方式。这可能吗?

kAudioSessionProperty\u模式设置为
kAudioSessionMode\u录像
AudioSessionSetProperty
一起使用离摄像机最近的麦克风,该麦克风应为后麦克风。如果你使用音频会话服务
AVAudioSessionModeVideoRecording
如果您正在使用AVFoundation进行录制。doc说“使用此模式可能会导致系统提供适当的音频信号处理。”我将其解释为“我们也可以使用其他话筒进行噪声消除”

使用音频会话获取可用的输入。在我的iPhone5上看起来是这样的

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

  "<AVAudioSessionPortDescription: 0x14554400, type = MicrophoneBuiltIn; name = iPhone Microphone; UID = Built-In Microphone; selectedDataSource = Back>"
NSLog(@"%@", [AVAudioSession sharedInstance].availableInputs[0].dataSources);

  "<AVAudioSessionDataSourceDescription: 0x145afb00, ID = 1835216945; name = Bottom>",
  "<AVAudioSessionDataSourceDescription: 0x145b1870, ID = 1835216946; name = Front>",
  "<AVAudioSessionDataSourceDescription: 0x145b3650, ID = 1835216947; name = Back>"

嗨,Deepak Sharma,你能告诉我一些选择前置话筒或底部话筒的想法或代码吗?提前谢谢嘿Deepak你能找到解决办法吗?如果是的话,你介意分享吗?谢谢。但我相信这只适用于iOS 7。我想这也没关系。使用这段代码,设置首选数据源的类别应该是什么?
AVAudioSessionPortDescription *port = [AVAudioSession sharedInstance].availableInputs[0];
for (AVAudioSessionDataSourceDescription *source in port.dataSources) {
    if ([source.dataSourceName isEqualToString:@"Back"]) {
        [port setPreferredDataSource:source error:nil];
    }
}