我有一位客户拥有 Flash 格式的网络视频内容。我的任务是帮助他们在 iPhone 应用程序中展示视频。
我意识到第一步是将这些视频转换为适合 iPhone 的 Quicktime 格式。
然后我必须帮助客户弄清楚如何或在哪里托管这些文件。如果这很棘手,我认为它们可以在 YouTube 上托管。
不过,我主要关心的是采用哪种方法来传输视频。 MPMoviePlayerController 与使用流的 URL 启动 UIWebView 相比有何优缺点?有什么区别吗?他们中的一个或多或少是宽容的吗?其中之一是更好的用户体验吗?我可能会遇到什么问题吗?
我假设在 iPhone 上播放视频非常容易。尝试两者并使用其中一个作为后备是否合理,或者这会浪费时间吗?我正在尝试安排一下这个时间,所以我很想听听做过这件事的人的真实经验。
编辑:我在这个答案中的原始示例使用 CGRectZero 框架初始化了 webview。这一直适用于 iOS 3.2。从 iOS 4 开始,网络视图必须具有非零帧,否则视频将无法播放。我编辑了下面的示例以反映此更改。
这里接受的答案并不准确。事实上,您可以使用 UIWebView 来流式传输视频,并且在某些方面它比 MPMoviePlayerController 更好。如果您告诉 UIWebView 通过 loadRequest: 请求视频文件(例如 mp4),它将打开一个新窗口并在您的应用程序中流式传输视频。与 MPMoviePlayerController 不同,UIWebView 创建的视频窗口可以旋转为横向或纵向。当视频结束时,用户可以关闭此窗口并返回到您的应用程序。
编辑2:由于您现在可以实现使用 MPMoviePlayerViewController 旋转的视频播放器,我无法再想到使用此答案中描述的技术将 UIWebView 用于视频的原因。
提示:由于 UIWebView 创建自己的窗口来播放视频,因此您甚至不需要将 UIWebView 添加到视图层次结构中。您只需创建 UIWebView 对象并调用 loadRequest: 即可播放视频,而无需将该对象传递给 addSubview:。
self.webView = [[[UIWebView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]] autorelease];
NSURL *url = [NSURL URLWithString:@"http://www.jonathancoulton.com/music/thingaweek/CodeMonkey.mp3"];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[webView loadRequest:request];
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)