我最近好让我的应用程序(音乐和视频流播放器)在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或5的iOS
关于如何解决它的任何想法?
Answer 1:
我有完全相同的问题...
试试你实例化您的播放器后立即这样做:
[player prepareToPlay];
它应该当你调用播放自动调用,但显然在iOS上,如果你不显式调用6出了差错。
在我的情况下,它解决了这个问题。
Answer 2:
你所观察是不是死机,但一个例外。 你最有可能启用异常断点,导致你的假设是,应用程序崩溃。
这实际上异常正确处理(毫无遗漏)的SDK和不会导致应用程序崩溃。
请注意,这只是发生在模拟器,而不是设备上。
这个问题密切相关,这个问题是什么,确实,这-GDB输出均值 。 所不同的是,你不会得到这些错误消息了,但异常的仍然抛出(也毫无遗漏)。
Answer 3:
我已经采用的xcode 4.5 + SDK6.0与xcode的4.4.1 + SDK5.1组合存在与IOS 6版本的MPMoviePlayerController的问题验证。 我只配备了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已经得到了一个错误。
Answer 4:
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播放]; 一旦你添加播放器视图的视图将开始发挥,但在iOS 6中,你需要显式调用播放功能
Answer 5:
我有的MPMoviePlayerController相同的问题了iOS6的。 所以我改变了我的代码fllowing,现在它工作正常..
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];
Answer 6:
我还没有解决这个问题还没有,但它似乎什么时候在我的具体情况有关MPMoviePlayerController
将要进入全屏时,或有用于控制潜在的滞后。
我不是从网络流媒体内容,内容是在设备上,所以最初的内容显示在视图中的罚款。
我的猜测是,他们已经实施了新的功能,为MPMoviePlayerController
以防止在播放过程中“死区时间”。 我已经看到了一些应用程序时,电影数据下线,只是挂或者你刚好走出你的无线网络的范围”
我试图解决这一问题将是看看传递给通知消息 -
(void)moviePlayBackDidFinish: (NSNotification*)notification
这是通过查询用户信息字典完成
NSDictionary *userInfo = [notification userInfo];
对于值MPMoviePlayerPlaybackDidFinishReasonUserInfoKey
是在这种类型的故障的情况下,0。
这是一个起点。 我的想法是,在这种独特的失败这一点上复权的电影。
我会及时向大家发布的结果。
Answer 7:
首先,我做了类似下面
[self.player.moviePlayer prepareToPlay];
[self.player.moviePlayer play];
self.player.moviePlayer.shouldAutoplay = YES;
并且当我删除下面的线
self.player.moviePlayer.shouldAutoplay = YES;
问题得到解决。
Answer 8:
我在与下面的代码的问题,玩家进入全屏幕上,但经过正确的,它关闭,根本不会播放视频。
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];
Answer 9:
我也使用MPMoviePlayerViewController
展现在我的应用程序的实时视频和我得到如上错误的同一列表。 我发现MPMoviePlayer
不支持更大的数据显示视频,但如果你使用更小的视频数据,它工作正常,抛出任何错误。 其实,这是不准备在玩和播放电影播放器的性能的问题。
如果你需要显示大数据然后使用web视图您的应用。
文章来源: iOS 6 streaming player com.apple.coremedia.networkbuffering bug