首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否关闭振铃器使kAudioSessionCategory_MediaPlayback静音?

是否关闭振铃器使kAudioSessionCategory_MediaPlayback静音?
EN

Stack Overflow用户
提问于 2011-06-21 15:00:12
回答 2查看 957关注 0票数 1

根据文档,即使将振铃器开关设置为关闭,也可以播放声音的正确方法如下:

代码语言:javascript
复制
 UInt32 sessionCategory = kAudioSessionCategory_MediaPlayback;

    AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, sizeof(sessionCategory), &sessionCategory);

然后我在整个应用程序中播放短的wav文件,播放完美使用

代码语言:javascript
复制
AudioServicesPlaySystemSound(sysSound)

....until铃声已关闭,然后then.....silence?

无论我做什么,如果铃声关闭,我都不能播放声音?

任何人..。请?

EN

回答 2

Stack Overflow用户

发布于 2011-07-27 11:21:32

你有没有试过在最后用AudioSessionSetActive(是);?

票数 0
EN

Stack Overflow用户

发布于 2018-05-29 23:15:43

在我的经验中,AudioServicesPlaySystemSound从不在铃声关闭的情况下播放。如果你使用AVAudioPlayer播放声音,你应该会得到你想要的行为:

代码语言:javascript
复制
let player: AVAudioPlayer = try AVAudioPlayer(contentsOf: url)
player.delegate = self
player.play()

您还需要在播放之前激活音频会话(如果尚未激活)。设置一个音频会话类别,支持静音时的声音,就像你已经做的那样。考虑在没有音频播放时停止音频会话,以节省电池寿命。

AudioServices和AVAudioPlayer之间的一个显著区别是,如果振铃器被静音,AudioServices播放将几乎立即返回,而AVAudioPlayer将在完成之前播放整个声音。据我所知,检测和响应用户的振铃器设置的唯一方法是使用AudioServices而不是AVAudioPlayer。如果你只是想在静音状态下玩游戏,那么这并不重要。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6421528

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档