如何检测iOS设备是否处于静音模式?

18

我已经寻找了数个小时,但似乎找不到任何API来解释如何检测iPhone铃声是否为静音模式。这就是我的问题所在:

iPhone Ringer Switch

有没有办法使用Swift代码找出iOS设备的静音模式是开启还是关闭?我特别寻找iOS8及以上版本,因为iOS5已被弃用。谢谢。


你看过这个吗?https://dev59.com/83vZa4cB1Zd3GeqP-Qy2#20992650 - Uma Madhavi
我看到一个顶级回答说苹果尚未构建它。然而,我已经看到Snapchat和其他应用程序在静音按钮打开/关闭时静音/取消静音其视频播放。他们是如何做到的?此外,那个回答是针对iOS 4的... @Uma - BunkBedNoob
1个回答

18

我认为你不需要直接调用API来检测设备是否静音,因此可能不存在这样的API。你需要知道的是:

当播放声音时,你会执行类似以下操作:

        try AVAudioSession.sharedInstance().setCategory({AVAudioSessionCategory})
        try AVAudioSession.sharedInstance().setActive(true)
        audioPlayer = try AVAudioPlayer(contentsOfURL: alertSound)
        audioPlayer.prepareToPlay()
        audioPlayer.play()
{AVAudioSessionCategory}中,你可以指定:

AVAudioSessionCategorySoloAmbient:当屏幕锁定或静音开关打开时,你的音频将被静音

AVAudioSessionCategoryPlayback:即使将静音开关设置为静音或屏幕锁定,你的音频也会继续播放


这非常有帮助。虽然不完全是我想要的解决方案,但这可以影响我的应用程序的工作方式。非常感谢你,Guy! - BunkBedNoob
3
如果当前正在播放视频,你该如何检测它是否已被静音? - Stephen Paul

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接