I've been looking for hours and I can't seem to find any API that explains how to detect whether an iPhone ringer is in silent mode or not. This is what I'm talking about:

3412ebf7d4e8ad2a5c97868b459ce28f.png

Is there anyway I can find out whether an iOS device's silent mode is on or off using Swift code? I'm specifically looking for iOS8 and up since the iOS5 ones have been deprecated. Thanks.

解决方案

I don't think there is and you probably don't need to directly call an API to detect if the device is muted or not. What you need to know is this:

When playing a sound, you will do something like:

try AVAudioSession.sharedInstance().setCategory({AVAudioSessionCategory})

try AVAudioSession.sharedInstance().setActive(true)

audioPlayer = try AVAudioPlayer(contentsOfURL: alertSound)

audioPlayer.prepareToPlay()

audioPlayer.play()

In the {AVAudioSessionCategory}, you can specify:

AVAudioSessionCategorySoloAmbient: Your audio is silenced by screen

locking and by the Silent switch

AVAudioSessionCategoryPlayBack: Your Audio continues with the Silent

switch set to silent or when the screen locks

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐