在iOS 7中检测静音模式

sum*_*mon 6 iphone ios ios7

有没有办法在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;

   }
Run Code Online (Sandbox Code Playgroud)

ign*_*rum 14

检查此线程 - 使用AVAudioPlayer检测iPhone的响铃/静音/静音开关不起作用?

而这个API - SoundSwitch

这个怎么运作:

  • 播放0.5秒的音频文件,每秒(完成后)
  • 检查播放声音所需的时间
  • 回叫叫真快吗?没有播放(静音开关打开)

请享用!

  • 上面的链接不再有效.这是示例项目的github版本:https://github.com/moshegottlieb/SoundSwitch (4认同)
  • Soundswitch API URL 已失效 (2认同)