覆盖仅使用设备的内置麦克风

时间:2017-07-17 12:44:26

标签: ios cocoa-touch microphone

即使连接了带麦克风的耳机,我也需要使用内置iPhone麦克风。如何以编程方式进行设置?

2 个答案:

答案 0 :(得分:0)

使用Sivajee Battina的建议解决问题。这就是我的工作方式:

NSArray *inputs = [audioSession availableInputs];
for (AVAudioSessionPortDescription *desc in inputs)
{
    NSString *portType = [desc portType];
    if ([portType isEqualToString: AVAudioSessionPortBuiltInMic])
    {
        [audioSession setPreferredInput: desc error: &error];
        break;
    }
}

仍然将他的答案标记为正确答案。

答案 1 :(得分:-1)

摘自 Apple Docs:

  

为音频路由设置首选输入端口

func setPreferredInput(_ inPort: AVAudioSessionPortDescription?) throws
     

设置首选输入端口请求更改输入音频路由。要确定更改是否生效,请使用   currentRoute财产。 inPort参数的值必须是其中一个AVAudioSessionPortDescription对象    availableInputs 数组。如果此参数指定的端口不是当前音频路由的一部分且应用程序的会话控制音频路由,则此方法会启动路由更改以使用首选端口。您必须在设置音频会话类别后才设置首选输入端口和模式并激活会话。