Nos*_*dna 19 youtube iphone mpmovieplayercontroller uiwebview streaming-video
我有一个客户端以Flash格式提供网络视频内容.我的任务是帮助他们在iPhone应用中显示视频.
我意识到第一步是将这些视频转换为适合iPhone的Quicktime格式.
然后我将不得不帮助客户找出如何或在何处托管这些文件.如果这很棘手,我认为他们可以在YouTube上托管.
不过,我主要担心的是采用哪种方法来传输视频.MPMoviePlayerController与使用流的URL启动UIWebView有什么优缺点?有什么区别吗?他们中的一个或多或少是宽容的吗?其中一个是更好的用户体验吗?我可能会遇到任何陷阱?
我假设在iPhone上玩视频很容易.尝试两者并将其作为后备可用是否合理,还是浪费时间?我正试图安排一下,所以我很乐意听到任何人这样做的实际经验.
cdu*_*uhn 25
编辑:我在这个答案中的原始示例使用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];
Run Code Online (Sandbox Code Playgroud)
UIWebView实际上无法播放视频.使用UIWebview导航到Youtube页面只需启动iPhone的Youtube应用程序.以某种方式执行此操作将在播放视频后将控制权返回给您的应用.请参见:http: //iphoneincubator.com/blog/tag/uiwebview
我建议使用MPMoviePlayer Controller,只要你只做简单的流媒体.这里有一些示例代码可以帮助您入门:
NSString *url = @"http://www.example.com/path/to/movie.mp4";
MPMoviePlayerController *moviePlayer = [[MPMoviePlayerController alloc]
initWithContentURL:[NSURL URLWithString:url]];
[moviePlayer play];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19508 次 |
| 最近记录: |