我想在我的应用程序的音频鸭子音乐正在后台播放,但也不能播放时,铃声/静音开关切换到静音模式。我能够通过以下AVAudioSession
配置获得这种行为,有一个警告-当音乐播放并且设备静音时,它仍然在躲避音乐,即使我的应用程序(正确地)实际上不播放任何音频。
是否有一个配置使其正常工作?当应用程序实际上不播放音频时,系统会躲避其他人,这似乎很奇怪。这有可能是iOS的一个bug吗?
try AVAudioSession.sharedInstance().setCategory(.ambient, mode: .default, options: [.duckOthers, .interruptSpokenAudioAndMixWithOthers])
这就是我所实现的,我只是静音我的iPad,它没有播放声音。但我不确定iPhone上的行为是否相同,因为我通常总是将手机静音,仍然可以听到音频…
do {
try AVAudioSession.sharedInstance().setCategory(.playback, options: .duckOthers)
} catch(let error) {
print(error.localizedDescription)
}
let utterance = AVSpeechUtterance(string: stringToSpeak)
// Set voice to male or female based on user settings
if defaults.integer(forKey: "Voice") == 1 {
utterance.voice = AVSpeechSynthesisVoice(identifier: "com.apple.ttsbundle.siri_male_ja-JP_compact")
}
else {
utterance.voice = AVSpeechSynthesisVoice(language: "ja-JP")
}
synthesizer.speak(utterance)