在iOS中内置麦克风和耳机之间进行select

我们正在开发一个应用程序,需要改变iOS的audio路线。 我们需要从麦克风input中获取一些信息,然后切换到设备的内部麦克风以录制环境声音。

我们已经看到这些页面的2个主题: 强制iPhone麦克风作为audioinput和使用内置麦克风,如果耳机插入,但我想没有任何最后的话根据这种情况。

现在,代码工作,但我们可以selectaudioinput的路线。

我们在Apple提供的文档(Remote IO)中没有发现任何东西。

这有什么新东西吗?

谢谢!

警告 :此答案仅适用于iOS6。 这是不正确的iOS7或更高版本。 详情请参阅评论。

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

连接耳机(=组合耳机和话筒)时,可以select两种方式:

  • 内置麦克风input和扬声器输出
  • 耳机的麦克风input和耳机的耳机输出

(你不能使用这些的混合物。)

您可以通过Audio Session Services API的AudioSessionSetProperty属性设置属性kAudioSessionProperty_OverrideAudioRoute来select其中一个选项。 该物业的文件说:

如果在将此属性的值设置为kAudioSessionOverrideAudioRoute_Speaker时插入了耳机,系统将更改input以及输出的audio路由:input来自内置麦克风; 输出转到内置扬声器。