2016-08-28 3 views
-1

Я использую AVAudioSession, чтобы получить информацию об изменении маршрута -AVAudioSessionRouteChangeNotification продолжает получать называется

[[NSNotificationCenter defaultCenter] addObserver:self 
              selector:@selector(currentRouteChanged:) 
               name:AVAudioSessionRouteChangeNotification object:nil]; 

Проблема заключается в том, что после закрытия текущей сессии -

AVAudioSession *audioSession = [AVAudioSession sharedInstance]; 
    // close down our current session 
    [audioSession setActive:NO error:nil]; 

Уведомление по-прежнему вызывался.

В настоящее время я использую -

[[NSNotificationCenter defaultCenter] removeObserver:self]; 

остановить призвания, но не заполняет правильно. Если сеанс отсутствует, как это вызвано?

Есть ли «сильный» способ убить аудио сеанс вместо -

[audioSession setActive:NO error:nil]; 

что получит уведомление с вызывался?

благодаря

ответ

2

Если нет никакого сеанса

Существует всегда аудио сессии. Это общий синглтон, как и приложение, или центр уведомлений или пользовательские настройки по умолчанию. Его существование не имеет ничего общего с его активацией. Звуковая сессия существует с момента запуска приложения до момента его уничтожения. Как docs говорят:

После запуска, приложение автоматически получает одноплодной аудио сеанс

Там нет такого понятия, как «закрыть текущую сессию»; это всего лишь бессмысленная идея, которую вы делаете в своей голове.

Ваша идея, чтобы отменить регистрацию, которую вы больше не хотите, является правильной. Сделай это. Или игнорируйте их, когда они прибудут. Не волнуйся, будь счастлив.

+1

немного снисходительный, но звучит хорошо, спасибо за ваш ответ. Также я подумал, что это так, и попытался просто зарегистрироваться в уведомлении без активации сеанса вообще, и уведомление не было вызвано при изменении маршрута. Знаете ли вы, почему? – ozd

+0

Это не вопрос снисхождения. Вы делаете ложное предположение по очень важному вопросу, о чем свидетельствуют ваши разговоры о «закрытии» и «убийстве» аудио сессии. Я пытаюсь убедить вас в этом. Даже сейчас вы, кажется, не убеждены, но я не знаю, что еще я могу сказать. – matt

+0

Я отредактировал свой первый комментарий. – ozd

 Смежные вопросы

  • Нет связанных вопросов^_^