AVAudioPlayer перестает воспроизводиться при блокировке экрана, даже если категория AVAudioSessionCategoryPlayback
Мое приложение использует AVAudioPlayer для воспроизведения через аудио плейлисты. Я не изменил код между iOS4.3 и iOS5. Однако звук на iOS5 приостанавливается при блокировке экрана, хотя я установил категорию AVAudioSessionCategoryPlayback.
Я протестировал код на устройствах iOS4.3 и iOS5, и эта проблема возникает на устройстве iOS5.
Кто-нибудь еще сталкивался с этой проблемой? Я в растерянности, так как даже не знаю, с чего начать отладку этой проблемы. Моя отладка началась и закончилась проверкой настройки AVAudioSessionCategory.
Код, где я делаю это:
[[AVAudioSession sharedInstance] setDelegate: self];
NSError *setCategoryError = nil;
[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error: &setCategoryError];
Редактировать:
Я уже реализовал и обработал audioPlayerBeginInterruption
Редактировать № 2: Решено! Благодаря ответу Ритмика Фистмана
Вот что происходило и что я делал. Изменения iOS5 теперь отодвигают ваше приложение на задний план, даже когда экран заблокирован. Это означает, что вам нужно включить фоновое аудио в вашем приложении и сделать любой view/viewcontroller, обрабатывающий это аудио, первым респондентом.
Шаг 1. Включите фоновое аудио в вашем приложении
ПРИМЕЧАНИЕ. Обязательно проверьте это на устройстве. Симулятор покажет, что код не работает.
2 ответа
Экран блокировки изменился в iOS5, теперь он отправляет ваше приложение в фоновый режим, поэтому, если вы хотите, чтобы ваше аудио продолжалось, вы должны добавить "audio" в качестве UIBackGroundModes в ваш файл Info.plist.
Наиболее близкая вещь, которую я могу найти к документации об этом, - это несколько постов Apple Devforum (требуется вход в систему).
Я не очень привык к аудио, но вы смотрели про интерпшнс? Я читал что-то, что говорило (по моим воспоминаниям), что звук может быть остановлен, когда произойдет прерывание, и ваша работа - заставить его воспроизводиться снова.
Но это просто что-то из моей памяти. Это помогает?