根据文档,即使将振铃器开关设置为关闭,也可以播放声音的正确方法如下:
UInt32 sessionCategory = kAudioSessionCategory_MediaPlayback;
AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, sizeof(sessionCategory), &sessionCategory);然后我在整个应用程序中播放短的wav文件,播放完美使用
AudioServicesPlaySystemSound(sysSound)....until铃声已关闭,然后then.....silence?
无论我做什么,如果铃声关闭,我都不能播放声音?
任何人..。请?
发布于 2011-07-27 11:21:32
你有没有试过在最后用AudioSessionSetActive(是);?
发布于 2018-05-29 23:15:43
在我的经验中,AudioServicesPlaySystemSound从不在铃声关闭的情况下播放。如果你使用AVAudioPlayer播放声音,你应该会得到你想要的行为:
let player: AVAudioPlayer = try AVAudioPlayer(contentsOf: url)
player.delegate = self
player.play()您还需要在播放之前激活音频会话(如果尚未激活)。设置一个音频会话类别,支持静音时的声音,就像你已经做的那样。考虑在没有音频播放时停止音频会话,以节省电池寿命。
AudioServices和AVAudioPlayer之间的一个显著区别是,如果振铃器被静音,AudioServices播放将几乎立即返回,而AVAudioPlayer将在完成之前播放整个声音。据我所知,检测和响应用户的振铃器设置的唯一方法是使用AudioServices而不是AVAudioPlayer。如果你只是想在静音状态下玩游戏,那么这并不重要。
https://stackoverflow.com/questions/6421528
复制相似问题