Подтвердить что ты не робот

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];

Edit:

Я уже реализовал и обработал audioPlayerBeginInterruption

Изменить # 2: Решено! Благодаря Ответный ритмический фистман

Вот что происходило и что я делал. Изменения iOS5 теперь подталкивают ваше приложение к фону, даже когда экран блокируется. Это означает, что вам необходимо включить фоновый звук в вашем приложении и сделать любой вид view/viewcontroller обработчиком этого аудиосигнала первым отвечающим.

Шаг 1: Включить фоновый звук в приложении

Шаг 2: Включить удаленные события и стать первым ответчиком на viewcontroller/view, ответственном за обработку вашего аудио-плейлиста

Примечание: Обязательно проверьте это на устройстве. Симулятор будет казаться, что код не работает.

4b9b3361

Ответ 1

Скриншот изменился в iOS5, теперь он отправляет ваше приложение на задний план, поэтому, если вы хотите, чтобы ваш звук продолжался, вы должны добавить "audio" в качестве UIBackGroundModes в ваш файл Info.plist.

Ближайшая вещь, которую я могу найти для документации, это несколько Apple devforum сообщения (требуется вход).

Ответ 2

Я не очень привык к звуку, но разве вы смотрели на перехваты? Я прочитал что-то, что сказал (в моих воспоминаниях), что звук может быть остановлен, когда происходит прерывание, и это ваша работа, чтобы заставить его снова играть.

Но это просто что-то происходит из моей памяти. Помогает ли это?