编辑:我在这个答案中的原始示例使用 CGRectZero 框架初始化了 webview。这适用于 iOS 3.2。从 iOS 4 开始,webview 必须有一个非零帧,否则视频将无法播放。我在下面编辑了我的示例以反映此更改。
这里接受的答案不准确。实际上,您可以使用 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];