iOS Force Audio仅输出到耳机插孔

时间:2016-02-25 09:08:48

标签: ios iphone core-audio avaudiosession audiosession

我想将iOS VoiceOver声音指向耳机,即使它没有插入耳机。

换句话说,当我的应用程序处于打开状态时,VoiceOver声音(以及我在应用程序中使用AVSpeechUtterance等播放的其他声音)应该永远不会发送到扬声器,但如果已连接,则应该从耳机中取出。< / p>

有人可以对此提出一些建议吗?

2 个答案:

答案 0 :(得分:1)

除非已识别(适当的阻抗等)耳机或耳机插入插孔,否则iOS设备无法启动耳机插孔以进行音频输出。

如果插入了有效的音频,VoiceOver音频将始终转到耳机,而不是过度使用。

答案 1 :(得分:1)

显然,除非将配件插入耳机插孔(激活物理开关以将声音指向耳机),否则无法将声音强制导向耳机。

我使用以下代码(在Swift中)实现了我的目的,该代码将VoiceOver和其他声音指向电话扬声器(从我们收听电话的地方)并在我的应用程序处于前台时使扬声器静音。

let session: AVAudioSession = AVAudioSession.sharedInstance()
do {
    try session.setCategory(AVAudioSessionCategoryPlayAndRecord)
    try session.overrideOutputAudioPort(AVAudioSessionPortOverride.None)
    try session.setActive(true)
} catch {
    print("Couldn't override output audio port")
}