過去にこの方法を使用して、サイレント スイッチが有効になっているかどうかを検出しました。
- (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 では機能しなくなりました。これは既知の問題ですか? スタック オーバーフローまたは Apple dev フォーラムで回答を見つけることができませんでした。
あなたが助けてくれることを願っています...