我怎么能在iOS上播放youtube视频?

时间:2014-01-22 07:28:21

标签: ios objective-c uiwebview youtube video-player

我想在我的iOS应用程序中播放YouTube视频,我看到有许多选项,例如嵌入视频和UIWebview中的所有视频。但我希望它像玩家一样。当我点击按钮然后它打开新的页面和视频应播放。

我甚至在谷歌搜索然后我听说过这个控件

“XCDYouTubeVideoPlayerViewController-master”当我将它集成到我的项目时

在我的youtube.m文件

viewdidAppear()我添加了此代码

XCDYouTubeVideoPlayerViewController *videoPlayerViewController = [[XCDYouTubeVideoPlayerViewController alloc] initWithVideoIdentifier:@"9bZkp7q19f0"];
[self presentMoviePlayerViewControllerAnimated:videoPlayerViewController];

然后打开一个视频播放器,在几秒钟内关闭视频播放器。它没有播放任何内容。

当我试图嵌入视频时

 webView.frame=CGRectMake(0,0,self.view.frame.size.width, self.view.frame.size.height);
    NSLog(@"%@",sharedManager.trailerLink);
    [webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:sharedManager.trailerLink]]];

我正在获取像youtube移动网站的窗口,请检查图像。我只想在屏幕上显示一个视频。 enter image description here 请帮帮我

2 个答案:

答案 0 :(得分:1)

无法使用与MPMoviePlayer - 对象相同的控件加载YouTube视频,但您可以使用YouTubes iFrame-API

跳过加载相关内容

要在UIWebview中加载视频,请使用此帮助程序:

- (NSString*)youTubeHTMLFromURL:(NSURL*)url
{
  NSError *error = NULL;
  NSRegularExpression *regex =
  [NSRegularExpression regularExpressionWithPattern:@"(?<=v(=|/))([-a-zA-Z0-9_]+)|(?<=youtu.be/)([-a-zA-Z0-9_]+)"
                                            options:NSRegularExpressionCaseInsensitive
                                              error:&error];

  NSTextCheckingResult *match = [regex firstMatchInString:url
                                                  options:0
                                                    range:NSMakeRange(0, [url length])];
  if (match) {
    NSRange videoIDRange = [match rangeAtIndex:0];
    NSString *videoId = [url substringWithRange:videoIDRange];
    NSString *html = [NSString stringWithFormat:@"<!DOCTYPE html>\
                      <html>\
                      <head>\
                      <style type='text/css' media='screen'>\
                      body, p{\
                      margin: 0px;\
                      }\
                      #player {\
                      width: 100%%;\
                      }\
                      </style>\
                      </head>\
                      <body><div id='player'></div>\
                      <script type='text/javascript'>\
                      var tag = document.createElement('script');\
                      tag.src = 'https://www.youtube.com/iframe_api';\
                      var firstScriptTag = document.getElementsByTagName('script')[0];\
                      firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\
                      \
                      var player;\
                      function onYouTubeIframeAPIReady() {\
                      player = new YT.Player('player', {\
                      height: '390',\
                      width: '640',\
                      videoId: '%@',\
                      events: {\
                      'onReady': onPlayerReady,\
                      }\
                      });\
                      }\
                      \
                      function onPlayerReady(event) {\
                      event.target.playVideo();\
                      }\
                      \
                      </script>\
                      </body>\
                      </html>", videoId];
    return html;
  }


  return nil;
}

答案 1 :(得分:0)

此库符合您的目标,并且易于使用测试HCYoutubeParser, 我希望它会有用!