为啥我的视频会在 UIWebView 中立即播放,但需要永远缓冲和加载 MPMoviePlayerController?
Posted
技术标签:
【中文标题】为啥我的视频会在 UIWebView 中立即播放,但需要永远缓冲和加载 MPMoviePlayerController?【英文标题】:Why does my video play instantly in a UIWebView but takes forever to buffer and load with MPMoviePlayerController?为什么我的视频会在 UIWebView 中立即播放,但需要永远缓冲和加载 MPMoviePlayerController? 【发布时间】:2013-06-06 01:57:04 【问题描述】:我在 HTTP 服务器上有一个大的 .m4v 视频文件。在此示例中,video1.m4v 文件为 2GB。例如,这是我要访问的 URL:
http://www.myurl.com/movies/video1.m4v
当我在我的 iPhone 上的 UIWebView
浏览器中加载该 URL 时,文件开始自动且完美地播放。我可以前进、后退、使用 Airplay,一切都运行良好且快速:
[webView loadRequest:[NSURLRequest requestWithURL:movie.fileURL]];
当我用这个 MPMoviePlayerController
代码加载它时,它会永远挂在 Loading
上:
MPMoviePlayerController *moviePlayerController = [[MPMoviePlayerController alloc] initWithContentURL:url];
[moviePlayerController.view setFrame:CGRectMake(0, 70, 320, 270)];
[self.view addSubview:moviePlayerController.view];
moviePlayerController.fullscreen = YES;
[moviePlayerController play];
为什么它在我的 UIWebView(或移动 Safari,如果我从那里加载 URL)开始缓冲和播放的速度比从 MPMoviePlayerController 快得多?
【问题讨论】:
因为两位选手在很多方面都不同。 Apple 没有透露细节,因此任何答案都不能依赖于记录在案的事实,而只能依赖于假设。 你有解决办法吗? 【参考方案1】:尝试使用MPMoviePlayerViewController
of MPMoviePlayerController
检查此链接: Apple Reference
试试这样的
MPMoviePlayerViewController *mpvc = [[MPMoviePlayerViewController alloc] initWithContentURL:url];
mpvc.moviePlayer.movieSourceType = MPMovieSourceTypeStreaming;
[self presentMoviePlayerViewControllerAnimated:mpvc];
【讨论】:
以上是关于为啥我的视频会在 UIWebView 中立即播放,但需要永远缓冲和加载 MPMoviePlayerController?的主要内容,如果未能解决你的问题,请参考以下文章
为啥我的 UIWebView 不显示 Javascript YouTube 播放器 iFrame?