0

我有一个MPMoviePlayerController,它需要一个链接并播放链接中的视频。使用WiFi这没有问题,视频播放,一切都很好。如何通过WWAN网络使用MPMoviePlayerController播放视频?

然而,使用3G网络时,它会在抛出MPMoviePlayerPlaybackDidFinishNotification之前挂起几秒钟,这是本地化描述'The operation could not be completed'。

我的代码如下:

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.8 MB。 3G是否限制了您可以立即在IOS上下载的数量?有没有其他方法可以通过3G网络播放视频?

谢谢你的时间!

回答

0

要通过慢速网络提供视频文件,您应该使用HTTP实时流式传输(HLS)。

你的代码不需要改变,但你调用它的URL应该指向流的索引文件。索引文件相当于单个(通常为10秒)MPEG传输流文件的播放列表。

浏览Apple's HTTP Live Streaming页面的详细信息,或者从Wikipedia获取服务器软件的概述和列表。

另外,您不显示videoPlayerController的声明,但是您需要确保它是您的视图控制器的属性,或者以某种方式确保其使用期限将与该视频正在播放。

+0

可悲的是我不能给你一个投票,因为我是这个社区的新手。不过,我已经标出了这个答案,并且非常感谢你指引我朝着正确的方向前进。干杯! – Feaniro

相关问题