为啥我的视频会在 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?

在 UIWebView 中播放 facebook 视频

如何仅在给定帧中限制 UIWebView 中的视频播放

为啥 Youtube 视频没有填满 UiWebView?

在 uiwebview 中播放 youtube 视频。如何处理“完成”按钮?

在没有全屏的情况下在 UIWebView 中播放 Youtube 视频