我们正在开发一个应用程序,需要更改 iOS 中的音频路由。我们需要从麦克风输入中获取一些信息,然后切换到设备的内部麦克风来记录环境声音。
我们从这些页面中看到了 2 个主题:Forcing iPhone Microphone as Audio Input和 Use built-in mic if Headset is plugged in但我想根据这种情况还没有任何定论。
现在,代码可以运行了,但我们可以选择音频输入的路径。
我们在 Apple(远程 IO)提供的文档中没有找到任何内容。
这有什么新东西吗?
谢谢!
最佳答案
警告:此答案仅适用于 iOS6。它不适用于 iOS7 或更高版本。有关详细信息,请参阅评论。
这是可能的,但只有副作用。更改输入设备也会更改输出设备。您将无法通过内置麦克风进行录音,同时无法通过头戴式耳机的耳机实时收听您的录音。这意味着,如果您不想通过耳机同时收听您的录音,那么有一个解决方案适合您:
连接耳机(= 耳机和麦克风组合)后,您可以在两种选择之间进行选择:
- 用于输入的内部麦克风和用于输出的扬声器
- 用于输入的耳机麦克风和用于输出的耳机耳机
(你不能混合使用这些。)
您可以通过设置属性 kAudioSessionProperty_OverrideAudioRoute 来选择其中一个备选方案通过函数AudioSessionSetProperty Audio Session 服务 API。该属性的文档说:
If a headset is plugged in at the time you set this property’s value to
kAudioSessionOverrideAudioRoute_Speaker
, the system changes the audio routing for input as well as for output: input comes from the built-in microphone; output goes to the built-in speaker.
关于ios - 在 iOS 中选择内置麦克风和耳机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13360784/