ios - 即使设备已静音且类别为环境,其他音频也会被闪避
问题描述
我希望我的应用程序中的音频能够在后台播放音乐,但在铃声/静音开关切换到静音模式时也不会播放。我可以通过以下AVAudioSession
配置获得这种行为,但需要注意的是——当正在播放音乐并且设备静音时,它仍在回避音乐,即使我的应用程序(正确地)实际上没有播放任何音频。
是否有配置可以使其正常工作?当应用程序实际上不播放音频时,系统会躲避其他人,这似乎很奇怪。这可能是iOS中的错误吗?
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)
推荐阅读
- android - 如何使用导航抽屉项目名称更改应用工具栏名称
- html - VBA HTML 浏览列表
- vba - 将超链接添加到访问报告中的文本框
- java - 试图在另一个活动中从 MainActivity 调用方法是我导致错误
- javascript - Mongo 仅在第二个 api 请求后访问
- c# - 如何更好地构建架构
- ios - 使用 imagePickerController 在 swift 4.2 中上传图像
- javascript - 获取被拖动的 SVG 元素的 id
- php - 如何从对象(stdClass)[key] 中获取密钥?
- powershell - 如何让循环在 PowerShell 中每 1 秒计数 1?