Обнаружить тихий режим в iOS5? - PullRequest
24 голосов
/ 18 октября 2011

В прошлом я использовал этот метод, чтобы определить, включен ли бесшумный переключатель:

- (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.

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

Ответы [ 2 ]

8 голосов
/ 07 ноября 2011

Мы больше не сможем обнаружить состояние беззвучного переключения, поскольку iOS 5 ...

Ответ от Apple есть на принятый ответ: Обнаружение звонка iPhone / Без звука / Без звукапереключиться с помощью AVAudioPlayer не работает?

1 голос
/ 25 октября 2011

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

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

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

...