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

Posted

技术标签:

【中文标题】如何检测 iOS 设备是不是处于静音模式?【英文标题】:How can I detect whether an iOS device is in silent mode or not?如何检测 iOS 设备是否处于静音模式? 【发布时间】:2016-02-09 05:42:45 【问题描述】:

我一直在寻找几个小时,但似乎找不到任何 API 来解释如何检测 iPhone 铃声是否处于静音模式。这就是我要说的:

我是否可以使用 Swift 代码确定 ios 设备的静音模式是打开还是关闭?我专门寻找 iOS8 及更高版本,因为 iOS5 已被弃用。谢谢。

【问题讨论】:

你检查过这个***.com/a/20992650/5362916 我有,最重要的答案是苹果还没有建立它。然而,当静音按钮打开/关闭时,我已经看到 Snapchat 和其他应用程序将其视频播放静音/取消静音。他们是如何做到的呢?这个答案也适用于 iOS 4...@Uma 【参考方案1】:

我认为没有,您可能不需要直接调用 API 来检测设备是否静音。你需要知道的是:

当播放声音时,你会做这样的事情:

        try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategory)
        try AVAudioSession.sharedInstance().setActive(true)
        audioPlayer = try AVAudioPlayer(contentsOfURL: alertSound)
        audioPlayer.prepareToPlay()
        audioPlayer.play()

AVAudioSessionCategory中,可以指定:

AVAudioSessionCategorySoloAmbient:您的音频被屏幕静音 锁定和静音开关

AVAudioSessionCategoryPlayBack:您的音频继续静音 开关设置为静音或屏幕锁定时

【讨论】:

这很有帮助。这不是我想要的完全正确的解决方案,但这可以塑造我的应用程序的工作方式。非常感谢你! 如果当前正在播放视频,您如何检测到它已静音?

以上是关于如何检测 iOS 设备是不是处于静音模式?的主要内容,如果未能解决你的问题,请参考以下文章

如何以编程方式检测 android 手机是不是处于静音模式

如何使用 Adob​​e air 在静音模式下检测设备并与之交互 - AS3

如何检测音频是不是无法静音?

检测 ios11 设备是不是处于低功耗模式,以防止正常正确自动播放视频时出现不良 UX

iOS 9 如何检测静音模式?

如何检测 UIAccessibilityRequestGuidedAccessSession 在设备上是不是处于活动状态,iOS swift?