Обнаруживать бесшумный режим в 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;
}

Это больше не работает в iOS5 на моем iPad или iPhone. Это известная проблема? Я не смог найти ответы на переполнение стека или на форумы Apple dev.

Надеюсь, вы сможете помочь...

Ответ 2

Как упоминалось в iOS Developer Library, свойство kAudioSessionProperty_AudioRoute устарело. Вместо этого используйте параметр kAudioSessionProperty_AudioRouteDescription

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

На этот вопрос был дан ответ: Обнаружение переключателя iPhone/Silent/Mute iPhone с использованием AVAudioPlayer не работает?