Objective-C: VolumeChanged не был вызван, даже добавить наблюдателя для AVSystemController_SystemVolumeDidChangeNotification? - PullRequest
2 голосов
/ 13 октября 2011
- (void)viewDidLoad {
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(volumeChanged:) name:@"AVSystemController_SystemVolumeDidChangeNotification" object:nil];
}

- (void)volumeChanged:(NSNotification *)notification{

    float volume = [[[notification userInfo] objectForKey:@"AVSystemController_AudioVolumeNotificationParameter"] floatValue];
    //[self innerSetVolume:volume];
}

volumeChanged не будет вызываться при нажатии аппаратной кнопки громкости вверх / вниз на устройстве. кто-нибудь встречал вопрос раньше?

PS: мое тестовое устройство - iPod touch с iOS 4.3, а не iPhone.

1 Ответ

2 голосов
/ 13 октября 2011

Полагаю, вам нужно запустить Audio Session Services, чтобы эти уведомления сработали.

Вот документация для звонка - http://developer.apple.com/library/ios/documentation/AudioToolbox/Reference/AudioSessionServicesReference/Reference/reference.html#//apple_ref/c/func/AudioSessionSetActive

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...