即使没有插入耳机,我也想将 iOS VoiceOver 声音定向到耳机。
换句话说,当我的应用程序打开时,VoiceOver 声音(以及我在应用程序中使用AVSpeechUtterance
等播放的其他声音)不应该进入扬声器,而是应该从耳机中发出(如果已连接)。
任何人都可以对此提出建议吗?
即使没有插入耳机,我也想将 iOS VoiceOver 声音定向到耳机。
换句话说,当我的应用程序打开时,VoiceOver 声音(以及我在应用程序中使用AVSpeechUtterance
等播放的其他声音)不应该进入扬声器,而是应该从耳机中发出(如果已连接)。
任何人都可以对此提出建议吗?
iOS 设备不会打开耳机插孔以进行音频输出,除非当前已将可识别(适当阻抗等)的耳机或耳机插入插孔。
VoiceOver 音频将始终进入耳机,如果插入了有效的耳机,并且没有被覆盖。
显然,除非将配件插入耳机插孔(这会激活物理开关以将语音引导到耳机),否则不可能将声音强行引导到耳机。
我已经使用以下代码(在 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")
}