Как обрабатывать ошибки AVPlayer, когда приложение работает в фоновом режиме?

Я использую AVPlayer для воспроизведения аудиопоток, и его можно воспроизводить в фоновом режиме. Мне интересно, как я могу справиться с ситуацией, когда пользователь теряет подключение к Интернету, чтобы я мог предоставить некоторую обратную связь или, возможно, попытаться восстановить воспроизведение через несколько секунд.

РЕДАКТИРОВАТЬ: я знаю, что вопрос касается AVPlayer, но если у вас есть ответ с MPMoviePlayerController, это также может быть полезно. Прямо сейчас, используя MPMoviePlayerController, я пытаюсь получить MPMovieFinishReasonPlaybackError случай MPMoviePlayerPlaybackDidFinishReasonUserInfoKey, подписавшись на MPMoviePlayerPlaybackDidFinishNotification, но если f.e. мой звук воспроизводится в фоновом режиме, и я включаю режим полета, я никогда не получаю это уведомление; Я получаю только MPMovieFinishReasonPlaybackEnded, и я не знаю, как отделить это от случая, когда пользователь сам останавливает звук.


person phi    schedule 30.12.2010    source источник


Ответы (1)


Я попытался найти реальный источник, но помню, что где-то читал, что если воспроизведение звука останавливается (по какой-либо причине), оно убивает фоновый поток. Человек, писавший о проблеме, говорил о возможном добавлении в поток пустого аудиоконтента, чтобы поддерживать поток. Возможно, вы сможете отправить локальное уведомление об ошибке обратного вызова, уведомляющее пользователя о том, что в аудио произошла ошибка, и его необходимо будет перезапустить вручную из приложения. Я не играл с API достаточно, чтобы знать, какой обратный вызов лучше всего использовать в этом случае. Если я найду ссылку, которую я ищу, я обновлю.

РЕДАКТИРОВАТЬ: вот мнение Гранта Паннелла о потоковом аудио и многозадачности.

person cesarislaw    schedule 10.01.2011
comment
Я нашел копию на Way Back Machine http://web.archive.org/web/20110525032820/http://digitaldj.net/2010/07/03/ios4-multitasking-developers-hell/ - person jocull; 22.06.2013
comment
@jocull хорошее использование webarchiver - person Jackie Chan; 18.07.2013