在iOS5中检测静默模式?

过去我使用过这种方法来检测无声开关是否启用:

- (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; } 

这不再适用于我的iPad或iPhone上的iOS5。 这是一个已知的问题? 我一直没能find任何堆栈溢出或苹果开发论坛的答案。

希望你能帮助…

从iOS 5开始,我们将无法检测到静音开关状态…

苹果公司的答案就是接受的答案: 使用AVAudioPlayer检测iPhone的环/静音/静音开关不工作?

如iOS开发者库中所提到的,属性kAudioSessionProperty_AudioRoute已被弃用。 相反,请使用kAudioSessionProperty_AudioRouteDescription

https://developer.apple.com/library/ios/#documentation/AudioToolbox/Reference/AudioSessionServicesReference/Reference/reference.html

这个问题已经在这里回答: 使用AVAudioPlayer无法正常工作,检测iPhone的环/静音/静音开关?