iOS 6 音频多路由 - 同时使用外部麦克风和内部扬声器

Posted

技术标签:

【中文标题】iOS 6 音频多路由 - 同时使用外部麦克风和内部扬声器【英文标题】:iOS 6 Audio multi-route - use external microphone AND internal speaker simultaneously 【发布时间】:2013-08-12 12:48:40 【问题描述】:

此演示文稿:ios6 中 Core Audio 上的 http://www.slideshare.net/invalidname/core-audioios6portland 似乎暗示(幻灯片 87)可以使用 Av Session 覆盖音频设备的自动输出/输入。

那么,具体来说,是否可以将外部麦克风插入 iOS6 设备并通过内部扬声器输出声音?我之前在这个网站上看到过这个问题:iOS: Route audio-IN thru jack, audio-OUT thru inbuilt speaker 但没有答案。

非常感谢!

【问题讨论】:

AFAIK,不在 iOS 6.1.x 或更早版本(提示)中通过任何公共 API。 【参考方案1】:

根据 Apple 的文档:

https://developer.apple.com/library/ios/documentation/AVFoundation/Reference/AVAudioSession_ClassReference/Reference/Reference.html#//apple_ref/occ/instm/AVAudioSession/overrideOutputAudioPort:error:
https://developer.apple.com/library/ios/documentation/AVFoundation/Reference/AVAudioSession_ClassReference/Reference/Reference.html#//apple_ref/doc/c_ref/AVAudioSessionPortOverride

您可以覆盖扬声器,但如果您更仔细地查看基于 C 的音频会话服务(实际上已被弃用,但仍有有用的信息)参考:

https://developer.apple.com/library/ios/documentation/AudioToolbox/Reference/AudioSessionServicesReference/Reference/reference.html#//apple_ref/doc/constant_group/Audio_Session_Property_Identifiers

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

我建议查看 iOS 7 的文档,看看他们是否添加了任何新功能。我还建议使用 iRiffPort 或基于 USB 的输入等外部设备运行测试(如果您有带 CCK 的 iPad)。

【讨论】:

以上是关于iOS 6 音频多路由 - 同时使用外部麦克风和内部扬声器的主要内容,如果未能解决你的问题,请参考以下文章

录制时通过 Swift OSX 音频

在 iOS 中使用耳机插孔引脚同时播放和录制音频?

哪种方式更容易通过麦克风捕获音频,同时播放音频?像音频放大器

iOS HSP 关闭音频输出

iOS 通过插孔端口捕获音频

iOS8 AVAudioEngine 如何将麦克风输入路由到(底部)扬声器输出?