在iOS中选择内置麦克风和耳机

时间:2012-11-13 12:28:37

标签: ios audio routes microphone remoteio

我们正在开发一款需要在iOS中更改音频路径的应用。我们需要从麦克风输入中获取一些信息,然后更改为设备的内部麦克风以录制环境声音。

我们已经从这些页面中看到了2个主题:Forcing iPhone Microphone as Audio InputUse built-in mic if Headset is plugged in但我想根据这种情况没有任何最终结论。

现在,代码可以工作,但我们可以选择音频输入的路径。

我们在Apple(远程IO)提供的文档中找不到任何内容。

这有什么新鲜事吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

警告:此答案仅适用于iOS6。对于iOS7或更高版本,它不正确。有关详细信息,请参阅注释。

这是可能的,但只有副作用。更改输入设备也会更改输出设备。您将无法通过内置麦克风录音,同时通过耳机的耳机实时收听录音。这意味着如果您不想通过耳机同时收听录音,那么有一个解决方案:

连接耳机(=组合式耳机和麦克风)后,您可以选择两种选择:

  • 用于输入的内置麦克风和用于输出的扬声器
  • 用于输入的耳机麦克风和用于输出的耳机耳机

(你不能混用这些。)

您可以通过音频会话服务API的函数kAudioSessionProperty_OverrideAudioRoute设置属性AudioSessionSetProperty来选择其中一种方法。该物业的文件说:

  

如果在设置此属性的值时已插入耳机   到kAudioSessionOverrideAudioRoute_Speaker,系统改变了   输入和输出的音频路由:输入来自   内置麦克风;输出到内置扬声器。