我们正在开发一个需要在 iOS 中更改音频路由的应用程序。我们需要从麦克风输入中获取一些信息,然后切换到设备的内部麦克风来录制环境声音。
我们从这些页面中看到了 2 个主题:强制 iPhone 麦克风作为音频输入和如果插入耳机则使用内置麦克风,但我想根据这种情况没有任何最终决定。
现在,代码可以工作了,但我们可以选择音频输入的路径。
我们在 Apple (Remote IO) 提供的文档中没有找到任何内容。
这有什么新的吗?
谢谢!
我们正在开发一个需要在 iOS 中更改音频路由的应用程序。我们需要从麦克风输入中获取一些信息,然后切换到设备的内部麦克风来录制环境声音。
我们从这些页面中看到了 2 个主题:强制 iPhone 麦克风作为音频输入和如果插入耳机则使用内置麦克风,但我想根据这种情况没有任何最终决定。
现在,代码可以工作了,但我们可以选择音频输入的路径。
我们在 Apple (Remote IO) 提供的文档中没有找到任何内容。
这有什么新的吗?
谢谢!
警告:此答案仅适用于 iOS6。对于 iOS7 或更高版本不正确。详情见评论。
这是可能的,但只有副作用。更改输入设备也会更改输出设备。您将无法通过内置麦克风进行录音,同时通过耳机的耳机实时收听您的录音。这意味着,如果您不想通过耳机同时收听录音,可以使用以下解决方案:
连接耳机后(= 耳机和麦克风组合),您可以在两种选择之间进行选择:
(你不能混合使用这些。)
您可以通过音频会话服务 API 的AudioSessionSetProperty函数设置属性kAudioSessionProperty_OverrideAudioRoute来选择其中一种。该物业的文件说:
如果在您将此属性的值设置为 时插入耳机
kAudioSessionOverrideAudioRoute_Speaker
,系统会更改输入和输出的音频路由:输入来自内置麦克风;输出到内置扬声器。