在 iOS 7 中检测静音模式

Posted

技术标签:

【中文标题】在 iOS 7 中检测静音模式【英文标题】:Detect silent mode in iOS 7 【发布时间】:2014-01-08 10:06:31 【问题描述】:

有什么方法可以检测 ios 7 中的静音模式吗?

以下代码不适用于 iOS 5 或更高版本

-(BOOL)silenced 
     #if TARGET_IPHONE_SIMULATOR
         // return NO in simulator. Code causes crashes for some reason.
         return NO;
     #endif

    CFStringRef state;
    UInt32 propertySize = sizeof(CFStringRef);
    AudioSessionInitialize(NULL, NULL, NULL, NULL);
    AudioSessionGetProperty(kAudioSessionProperty_AudioRoute, &propertySize, &state);
    if(CFStringGetLength(state) > 0)
            return NO;
    else
            return YES;

   

【问题讨论】:

How to detect iphone is on silent mode的可能重复 所有答案都已弃用! 【参考方案1】:

检查这个线程 - Detecting the iPhone's Ring / Silent / Mute switch using AVAudioPlayer not working?

还有这个 API - SoundSwitch

它是如何工作的:

每秒播放 0.5 秒的音频文件(完成后..) 检查播放声音所用的时间 回调调用真的很快吗?未播放任何内容(静音开关已打开)

享受吧!

【讨论】:

Soundswitch API URL 已失效 大家好,声音开关演示页面又回来了!在这里获取:sharkfood.com/content/Developers/content/Sound%20Switch 它不能在后台工作,你能帮我如何在后台实现这个吗?请在这里回答:***.com/questions/31604629/… 上面的链接失效了。这是示例项目的 github 版本:github.com/moshegottlieb/SoundSwitch @iMoses,我已使用您的最新链接更新答案,但请随时编辑答案并更新损坏的链接;)

以上是关于在 iOS 7 中检测静音模式的主要内容,如果未能解决你的问题,请参考以下文章

iOS 9 如何检测静音模式?

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

iOS响铃/静音开关设置为静音模式时没有声音

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

在 iOS 7 问题中检测静音开关

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