MPMoviePlayerController — отлов сетевых ошибок при загрузке фильма

Есть ли способ перехвата исключений (особенно для сетевых ошибок/отсутствия соединения) при использовании MPMoviePlayerController?

Меня особенно беспокоит то, что после инициализации экземпляра проигрывателя с помощью initWithURL: у вас нет возможности узнать, произошла ли ошибка загрузки фильма по какой-либо причине.

Я просмотрел доступную документацию и понял, что могу получать уведомления об изменениях loadState через

moviePlayerLoadStateChanged:(NSNotification*)notification.

Проблема в том, что доступные константы loadState не предназначены для обработки ошибок:

MPMovieLoadStateUnknown
MPMovieLoadStatePlayable
MPMovieLoadStatePlaythroughOK
MPMovieLoadStateStalled

(если вам интересно, MPMovieLoadStateStalled по какой-то причине не вызывается во время сетевых ошибок?)

Существует устаревший MPMoviePlayerContentPreloadDidFinishNotification, который предоставляет словарь userInfo с ключом «ошибка», но ничего для iOS 3.2 и выше.

Любая помощь будет очень высоко ценится.


person Rog    schedule 10.11.2010    source источник


Ответы (1)


В конце концов я разобрался с этим, подписавшись на MPMoviePlayerPlaybackDidFinishNotification и наблюдая за MPMovieFinishReasonPlaybackError.

Подробнее здесь https://developer.apple.com/library/ios/documentation/MediaPlayer/Reference/MPMoviePlayerController_Class/Reference/Reference.html#//apple_ref/doc/uid/TP40006953-CH3-SW17

person Rog    schedule 02.12.2010
comment
Эй, не могли бы вы добавить пример кода? В документации Apple отсутствуют примеры, и я не могу понять, как сделать то, что вы рекомендуете. - person Lombas; 12.07.2016