iOS 6stream媒体播放器com.apple.coremedia.networkbuffering错误

我在使应用程序(音乐和videostream播放器)在iOS 6模拟器上运行时遇到了麻烦。

当我开始音乐或video时,它崩溃,显示此线程上的错误: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 

我用基于http的stream使用MPMoviePlayerController,它可以在iOS 4或iOS 5上正常工作

任何想法如何解决它?

我遇到了完全相同的问题

试图在你实例化你的播放器之后做到这一点:

 [player prepareToPlay]; 

当你打电话时,它应该被自动调用,但显然在iOS 6上,如果你不明确地调用它,就会出错。

在我的情况下,它解决了这个问题。

你所观察到的不是崩溃,而是一个例外。 你最有可能有一个exception断点启用,并导致你的应用程序崩溃的假设。

这个exception实际上是由SDK正确处理(cought),并不会导致应用程序崩溃。

请注意,这只发生在模拟器上,而不是在设备上。

这个问题与这个问题密切相关, what-does-this-gdb-output-mean 。 不同的是,你不会得到这些错误信息,但exception仍然是(但也cought)。

我已经validation使用xcode 4.5 + SDK6.0与xcode 4.4.1 + SDK5.1组合,MPMoviePlayerController的ios 6版本存在问题。 我只与iPad一起工作。

这里是我的观察: – 我从来没有看到与我的代码使用MPMoviePlayerController在iOS 6.0的video播放。 – 与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有一个错误。

 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.movi​​ePlayer play]; 一旦你添加播放器视图到一个视图,它将开始播放,但在iOS 6中,你需要明确地调用播放function

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

我还没有解决这个问题,但是当MPMoviePlayerController打算进入全屏或者控制器存在潜在的滞后时,它似乎与我的情况有关。

我不是从networking传输内容,内容是在设备上,所以最初内容在视图中显示得很好。

我的猜测是他们已经在MPMoviePlayerController实现了一个新function来防止播放过程中的“死亡时间”。 我看到一些应用程序只是在电影数据离线时挂起,或者你碰巧走出你的wifi的范围“

我试图解决这个问题将是看通知消息传递给 –

 (void)moviePlayBackDidFinish: (NSNotification*)notification 

这是通过查询用户信息词典完成的

 NSDictionary *userInfo = [notification userInfo]; 

在这种types的故障情况下, MPMoviePlayerPlaybackDidFinishReasonUserInfoKey值为0。

这是一个起点。 我的想法是在这个独特的失败中重新演绎电影。

我会保持你的结果。

首先我做了如下的事情

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

当我删除下面的行

 self.player.moviePlayer.shouldAutoplay = YES; 

问题解决了。

我在下面的代码有问题,播放器全屏显示,但在此之后,它closures,根本不播放video。

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

我也正在使用MPMoviePlayerViewController在我的应用程序上显示实时video,并得到与上面相同的错误列表。 我发现MPMoviePlayer不支持较大的数据来显示video,但如果您使用较小的video数据,它工作正常,没有错误。 事实上,这并不是准备玩电影播放器​​的属性的问题。

如果您需要显示更大的数据,请在您的应用上使用webview。