Ошибка потокового проигрывателя iOS 6 com.apple.coremedia.networkbuffering

У меня возникли проблемы с запуском моего приложения (музыкального и видеопотока) на симуляторе iOS 6.

Когда я запускаю музыкальное или видео, оно вылетает, показывая ошибку в этой теме: com.apple.coremedia.networkbuffering

и это в информации журнала:

2012-09-13 17:45:09.260 app[32563:c07] [MPAVController] Autoplay: Disabling autoplay for pause
2012-09-13 17:45:09.260 app[32563:c07] [MPAVController] Autoplay: Disabling autoplay
2012-09-13 17:45:09.305 app[32563:c07] [MPAVController] Autoplay: Enabling autoplay
2012-09-13 17:45:09.307 app[32563:c07] handlePlaybackNowPlayingNotification
2012-09-13 17:45:09.308 app[32563:c07] [MPAVController] Autoplay: Likely to keep up or full buffer: 0
2012-09-13 17:45:09.308 app[32563:c07] [MPAVController] Autoplay: Skipping autoplay, not enough buffered to keep up.
2012-09-13 17:45:09.318 app[32563:c07] [MPAVController] Autoplay: Enabling autoplay
2012-09-13 17:45:09.320 app[32563:c07] [MPCloudAssetDownloadController] Prioritization requested for media item ID: 0

Я использую MPMoviePlayerController с потоком на основе http, и он отлично работает на iOS 4 или iOS 5.

Любые идеи о том, как это исправить?


person jMelnik    schedule 13.09.2012    source источник
comment
У меня аналогичная проблема.   -  person CiscoIPPhone    schedule 14.09.2012
comment
Если вы нашли ошибку в ядре iOS, StackOverflow вряд ли сможет вам помочь. Форумы Apple Dev или сообщение об ошибке, скорее всего, помогут вам исправить.   -  person Robotic Cat    schedule 14.09.2012
comment
Просто заметка. У меня такая же проблема в симуляторе, но на устройстве все работает нормально.   -  person Steve Moser    schedule 01.11.2012
comment
Вы, ребята, получили какое-либо решение относительно проблем с MPMoviePlayerController на ios 6? Если да, пожалуйста, опубликуйте ответ.   -  person Pheu Verg    schedule 28.06.2013


Ответы (9)


У меня была точно такая же проблема...

попробуйте сделать это сразу после создания экземпляра вашего плеера:

[player prepareToPlay];

Он должен вызываться автоматически, когда вы вызываете play, но, видимо, в iOS 6 что-то пойдет не так, если вы не вызовете его явно.

В моем случае это решило проблему.

person ortnec    schedule 17.09.2012
comment
Решил проблему и для меня. Раньше я не получал уведомления moviePlayerLoadStateChanged, теперь получаю. - person eli; 24.09.2012
comment
Да, похоже, это решает проблему, я добавил эту строку, и до сих пор таких ошибок больше не было. Спасибо - person jMelnik; 24.09.2012
comment
Я добавил эту строку, но все еще получаю ошибки, подобные тем, что указаны в вопросе ОП. Любые идеи? - person WendiKidd; 28.09.2012

То, что вы наблюдаете, это не крах, а исключение. Скорее всего, у вас включена точка останова исключения, и это приводит к предположению, что приложение аварийно завершает работу.

Это исключение на самом деле правильно обрабатывается (вылавливается) SDK и не вызывает сбоя приложения.

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

Эта проблема тесно связана с этой проблемой выходное среднее. Разница в том, что вы больше не будете получать эти сообщения об ошибках, но исключения по-прежнему выдаются (но также перехватываются).

person Till    schedule 20.12.2012
comment
У меня есть лучшее решение, позволяющее сохранить все исключения! Щелкните правой кнопкой мыши и отредактируйте его, а затем в разделе «Исключение» выберите «Цель-C». Если вы действительно пытаетесь отлаживать C++, то это не очень хорошо, но если вы обычное приложение для iOS, вам нужен только Objective-C! Проигрыватель фильмов выдает исключение C++, поэтому это раздражение исчезает! - person Aaron Zinman; 08.04.2015

Используя комбинации xcode 4.5+SDK6.0 и xcode 4.4.1+SDK5.1, я проверил наличие проблемы с версией MPMoviePlayerController для iOS 6. Я работал только с iPad.

вот мои наблюдения: - - я никогда не видел воспроизведения видео на ios 6.0 с моим кодом, который использует MPMoviePlayerController. - с xcode 4.4.1 и SDK 5.1 я видел, как код работает на версиях ios 5.1, 5.0 и 4.3. - с xcode 4.5 и SDK 6.0 плеер всегда дает сбой в симуляторе, но большинство установок на устройстве ios 5.1 работает. я продолжал переустанавливать приложение на устройство ios 5.1 и пробовать плеер. это не удалось только один раз.

вот мои наблюдения, когда проигрыватель выходил из строя: - несколько раз, когда проигрыватель выходил из строя, я видел логи, которые вы упомянули выше. в других случаях я даже не видел журналы. - я поставил точку останова в функции, которая получила уведомление MPMoviePlayerPlaybackDidFinishNotification. затем я искал журнал ошибок в плеере, и их не было. я искал MPMoviePlayerPlaybackDidFinishReasonUserInfoKey, и это было 0 (MPMovieFinishReasonPlaybackEnded). так что MPMoviePlayerController понятия не имел, что что-то пошло не так!

вывод: в ios6 и/или SDK 6 есть ошибка.

person vivandro    schedule 21.09.2012

NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"sample" ofType:@"mp4"]];
MPMoviePlayerViewController  *moviePlayer = [[MPMoviePlayerViewController alloc] initWithContentURL:url];



moviePlayer.view.frame = self.view.frame;
moviePlayer.moviePlayer.shouldAutoplay=YES;
moviePlayer.moviePlayer.controlStyle = MPMovieControlStyleNone;
[moviePlayer.moviePlayer setFullscreen:YES animated:YES];
[self.view addSubview:moviePlayer.view];
[moviePlayer.moviePlayer play];

Примечание. До iOS 6 не нужно вызывать [moviePlayer.moviePlayer play]; как только вы добавите представление игрока в представление, оно начнет воспроизводиться, но в iOS 6 вам нужно явно вызвать функцию воспроизведения

person Noufal Kmc    schedule 21.12.2012

у меня такая же проблема с MPMoviePlayerController для ios6. Итак, я изменил свой код на плавный, и теперь он работает нормально.

NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"sample" ofType:@"mp4"]];
MPMoviePlayerViewController  *moviePlayer = [[MPMoviePlayerViewController alloc] initWithContentURL:url];



moviePlayer.view.frame = self.view.frame;
moviePlayer.moviePlayer.shouldAutoplay=YES;
moviePlayer.moviePlayer.controlStyle = MPMovieControlStyleNone;
[moviePlayer.moviePlayer setFullscreen:YES animated:YES];
[self.view addSubview:moviePlayer.view];
[moviePlayer.moviePlayer play];
person Hashim MH    schedule 24.09.2012
comment
В моем случае было достаточно удалить: moviePlayer.view.frame = self.view.frame; - person M Penades; 20.11.2012

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

Я не транслирую контент из Интернета, контент находится на устройстве, поэтому изначально контент отображается в представлении нормально.

Я предполагаю, что они внедрили новую функцию в MPMoviePlayerController, чтобы предотвратить «мертвое время» во время воспроизведения. Я видел некоторые приложения, которые просто зависали, когда данные о фильмах отключались или вы вышли за пределы зоны действия вашего Wi-Fi».

Моя попытка решить эту проблему будет состоять в том, чтобы просмотреть сообщение уведомления, переданное на -

(void)moviePlayBackDidFinish: (NSNotification*)notification

это делается путем запроса словаря информации о пользователе

NSDictionary *userInfo = [notification userInfo];

значение для MPMoviePlayerPlaybackDidFinishReasonUserInfoKey равно 0 в случае этого типа сбоя.

Это отправная точка. Моя мысль состоит в том, чтобы восстановить фильм на этом уникальном провале.

Я буду держать вас в курсе результатов.

person Ios Freelancer    schedule 23.09.2012
comment
0 равно MPMovieFinishReasonPlaybackEnded. Вероятно, вам не захочется снова запускать фильм, когда он подошёл к концу. - person Valerio Santinelli; 22.10.2012

сначала я сделал что-то вроде ниже

[self.player.moviePlayer prepareToPlay];
[self.player.moviePlayer play];
self.player.moviePlayer.shouldAutoplay = YES;

и когда я удалил строку ниже

self.player.moviePlayer.shouldAutoplay = YES;

проблема была решена.

person mirror    schedule 20.12.2012

У меня проблема с кодом ниже, плеер открывается на весь экран, но сразу после этого закрывается и вообще не воспроизводит видео.

NSURL *url = [NSURL URLWithString:@"http://streaming.disponivel.uol.com.br/video360p2/288148-1192657.mp4"];

    _player = [[MPMoviePlayerViewController alloc] initWithContentURL:url];

    [_player.moviePlayer setMovieSourceType:MPMovieSourceTypeFile];

    [_player.moviePlayer setControlStyle:MPMovieControlStyleDefault];

    [_player.moviePlayer setFullscreen:YES animated:YES];      

    [self presentMoviePlayerViewControllerAnimated:_player];

    [_player.moviePlayer prepareToPlay];

    [_player.moviePlayer play];
person Anderson Bressane    schedule 05.02.2013

Я также использую MPMoviePlayerViewController для показа живого видео в своем приложении, и я получаю тот же список ошибок, что и выше. Я обнаружил, что MPMoviePlayer не поддерживает большие данные для показа видео, но если вы используете меньшие видеоданные, он работает нормально, не выдавая ошибок. На самом деле это не проблема подготовки к воспроизведению и игровых свойств киноплеера.

Если вам нужно показать большие данные, используйте веб-просмотр в своем приложении.

person Gopal vaid    schedule 25.03.2013