我有一个MPMoviePlayerController,它获取一个链接,并播放视频的链接。使用WiFi,这没有问题,视频播放,一切都很好。
然而,使用3G网络时,它挂起几秒钟后才会抛出MPMoviePlayerPlaybackDidFinishNotification,这是对“操作无法完成”的本地化描述。
我的代码如下:
videoPlayerController = [[MPMoviePlayerController alloc]
initWithContentURL:url];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(moviePlayBackDidFinish:)
name:MPMoviePlayerPlaybackDidFinishNotification
object:videoPlayerController];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(willEnterFullscreen:)
name:MPMoviePlayerWillEnterFullscreenNotification
object:videoPlayerController];
videoPlayerController.controlStyle = MPMovieControlStyleDefault;
videoPlayerController.shouldAutoplay = YES;
videoPlayerController.repeatMode = MPMovieRepeatModeOne;
CGRect rect = _documentViewer.frame;
[videoPlayerController.view setFrame:rect];
[self.scroller addSubview:videoPlayerController.view];
[videoPlayerController setFullscreen:NO animated:YES];正如我前面提到的,使用WiFi连接可以很好地工作,只是不喜欢在3G上做同样的事情。视频本身是26.8MB的特定URL。3G是否限制了你可以立即在IOS上下载的数量?在3G网络上是否有其他播放视频的方法?
谢谢您抽时间见我!
发布于 2013-07-26 01:20:29
要通过慢速网络提供视频文件,您应该使用(HLS)。
您的代码不需要更改,但是您使用的URL应该指向流的索引文件。索引文件相当于单个MPEG传输流文件的播放列表(通常为10秒)。
探索苹果的HTTP流页面上的详细信息,或者在维基百科上获得服务器软件的概述和列表。
顺便说一句,您没有显示videoPlayerController的声明,但您需要确保它是视图控制器的属性,或者在某种程度上确保它的生存期与播放视频的时间一样长。
https://stackoverflow.com/questions/17860125
复制相似问题