首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用MPMoviePlayerController代替UIWebView播放MPMoviePlayerController视频

用MPMoviePlayerController代替UIWebView播放MPMoviePlayerController视频
EN

Stack Overflow用户
提问于 2009-11-22 18:27:18
回答 8查看 77.2K关注 0票数 89

我试图使用youTube播放一些MPMoviePlayerController视频,但我遇到了一些问题。我使用的代码非常简单,我可以通过将一个URL传递给.m4v来播放initWithContentURL视频。当我启动电影播放器时,播放器出现了,但大约20秒后就离开了。当我在模拟器中尝试时,我会得到一个警告视图,显示服务器配置不正确。为了从google获得特定类型的视频提要,我需要通过URL传递一个论点吗?

代码语言:javascript
复制
NSURL *videoURL = [NSURL URLWithString:@"http://www.youtube.com/v/HGd9qAfpZio&hl=en_US&fs=1&"];
MPMoviePlayerController *moviePlayer;
moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:videoURL];

[moviePlayer play];

我还尝试了以下URL的http://www.youtube.com/watch?v=HGd9qAfpZio

我也看到了论点&format=1,并试图将其添加到两个字符串的末尾,但没有运气。

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2009-11-23 05:06:38

在你自己的应用程序中有一个youtube视频播放的唯一方法是创建一个带有来自Youtube的嵌入标记的UIWebView,用于你想要播放的作为UIWebView's内容的电影。UIWebView将检测到嵌入的对象是Youtube链接,而web视图的内容将是视频的youtube预览。当用户单击预览时,视频将在MPMoviePlayerController中显示。这是Muxecoid提供的链接(如何在应用程序中播放youtube视频)中描述的技术,据我所知,这是在应用程序中播放youtube视频的唯一方法。您仍然可以通过将Youtube URL传递给-[UIApplication openURL:]来启动youtube应用程序,但这当然会关闭您自己的应用程序,这通常是不可取的。

不幸的是,没有办法直接播放youtube视频与MPMoviePlayerController,因为youtube不公开与视频文件的直接链接。

票数 78
EN

Stack Overflow用户

发布于 2010-07-13 21:33:08

如果您正在使用代码:

代码语言:javascript
复制
- (void)embedYouTube:(NSString*)url frame:(CGRect)frame {  
     NSString* embedHTML = @"\ 
        <html><head>\ 
     <style type=\"text/css\">\ 
     body {\ 
     background-color: transparent;\ 
     color: white;\ 
    }\ 
   </style>\ 
    </head><body style=\"margin:0\">\ 
       <embed id=\"yt\" src=\"%@\" type=\"application/x-shockwave-flash\" \ 
    width=\"%0.0f\" height=\"%0.0f\"></embed>\ 
       </body></html>";  
   NSString* html = [NSString stringWithFormat:embedHTML, url, frame.size.width, frame.size.height];  
   if(videoView == nil) {  
      videoView = [[UIWebView alloc] initWithFrame:frame];  
     [self.view addSubview:videoView];  
    }  
    [videoView loadHTMLString:html baseURL:nil];  
  }

来源:

只需参考这个链接

请确保在设备上测试,而不是在模拟器上测试。因为模拟器总是用蓝色框显示问号(它没有快速时间播放器)。

票数 26
EN

Stack Overflow用户

发布于 2012-06-08 11:42:12

正如我在上面的评论中所写的那样,我不得不在我正在做的一个项目中这样做。我已经解决了这个问题,并在github上提交了代码。

您可以检查源并将其分叉为这里

它基本上需要一个youtube url,并获取所有iOS兼容的视频url。

希望这对你有什么帮助!

干杯

票数 23
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1779511

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档