2

即使没有插入耳机,我也想将 iOS VoiceOver 声音定向到耳机。

换句话说,当我的应用程序打开时,VoiceOver 声音(以及我在应用程序中使用AVSpeechUtterance等播放的其他声音)不应该进入扬声器,而是应该从耳机中发出(如果已连接)。

任何人都可以对此提出建议吗?

4

2 回答 2

1

iOS 设备不会打开耳机插孔以进行音频输出,除非当前已将可识别(适当阻抗等)的耳机或耳机插入插孔。

VoiceOver 音频将始终进入耳机,如果插入了有效的耳机,并且没有被覆盖。

于 2016-02-25T19:09:18.357 回答
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")
}
于 2016-02-28T13:25:25.010 回答