Я использовал этот метод в прошлом, чтобы определить, включен ли переключатель беззвучного режима:
- (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;
}
Это больше не работает в iOS5 на моем iPad или iPhone. Это известная проблема? Мне не удалось найти никаких ответов на форумах по переполнению стека или на форумах разработчиков Apple.
Надеюсь, ты сможешь помочь ...
Как упоминалось в библиотеке разработчиков iOS, свойство kAudioSessionProperty_AudioRoute устарело. Вместо этого используйте kAudioSessionProperty_AudioRouteDescription
На этот вопрос ответили здесь: Обнаружен ли переключатель iPhone Ring / Silent / Mute с помощью AVAudioPlayer не работает?