在Xcode 5中加载youtube URL

时间:2014-01-27 12:12:20

标签: ios uiwebview

我一直在寻找通过应用播放youtube视频的众多教程。然而,他们正在制作一个空白屏幕。根据对教程的评论,这在xocde 5上很常见?还有另一种方式可以流式传输视频吗?我在iphone上运行并连接了webview。

我正在使用:

.h

@interface detailViewController : UIViewController {

    IBOutlet UIWebView *webView;
}

查看已加载

      NSURL *url = [NSURL URLWithString:@"<iframe width=\"560\" height=\"315\" src=\"//www.youtube.com/embed/AmMF7hWrYZk\" frameborder=\"0\" allowfullscreen></iframe>"];
NSURLRequest *requestURL = [NSURLRequest requestWithURL:url];
[webView loadRequest:requestURL];

6 个答案:

答案 0 :(得分:1)

UIWebView *web;
NSString *pageHTML = [[NSBundle mainBundle] pathForResource:@"url" ofType:@"html"];
NSString *htmlString = [NSString stringWithContentsOfFile:pageHTML   encoding:NSUTF8StringEncoding error:nil];
[web loadHTMLString:htmlString baseURL:nil];

url.html中的代码是

<html>
   <head></head>
<body>
    <iframe src='http://player.vimeo.com/video/73198189?title=1&byline=0&portrait=0&loop=1' width='690' height='500' frameborder='10' webkitAllowFullScreen mozallowfullscreen allowFullScreen>myframe</iframe>
</body>
     

我已经使用此代码播放vimeo视频并且它有效..希望这可以帮助你...

答案 1 :(得分:1)

当我使用YouTubeHelper Xcode库(https://developers.google.com/youtube/v3/guides/ios_youtube_helper)时,我遇到了同样的问题。我发现第一次将YT *库添加到我的项目中时,我没有为任何添加的文件夹选择&#34;创建文件夹引用&#34;将assets文件夹添加到我的Xcode项目中时。删除现有资产文件夹并执行该步骤后,我可以让帮助程序库在我的项目中工作并播放YouTube视频,如上面的链接所述。希望有所帮助。

答案 2 :(得分:0)

我使用HCYoutubeParser实现了YouTube视频。非常好用且易于使用。

答案 3 :(得分:0)

考虑让网页视图告诉你为什么不加载

在视图控制器中实施UIWebViewDelegate methods,并将代理人附加到视图控制器。

- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error

可能会给你一个很好的暗示。

答案 4 :(得分:0)

发送NSURLRequest请求
-(void)viewWillAppear:(BOOL)animated {

}

这是我的代码,在我的应用中使用

NSString *youTubeID = [self extractYoutubeID:url];
 NSString *embedHTML =[NSString stringWithFormat:@"\
                          <html><head>\
                          <style type=\"text/css\">\
                          body {\
                          background-color: #666666;\
                          padding:%f %f %f %f;\
                          color: blue;\
                          }\
                          </style>\
                          </head><body style=\"margin:0\">\
                          <iframe height=\"%f\" width=\"%f\" title=\"YouTube Video\" class=\"youtube-player\" src=\"http://www.youtube.com/embed/%@\" ></iframe>\
                          </body></html>",paddingTop,paddingRight,paddingBottom,paddingLeft,videoHeight,videoWidth,youTubeID];
[self.webView loadHTMLString:embedHTML baseURL:nil];



// extractYoutubeID
+ (NSString *)extractYoutubeID:(NSString *)youtubeURL
{
    //NSLog(@"youtube  %@",youtubeURL);
    NSError *error = NULL;
    NSString *regexString = @"(?<=v(=|/))([-a-zA-Z0-9_]+)|(?<=youtu.be/)([-a-zA-Z0-9_]+)";
    NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:regexString options:NSRegularExpressionCaseInsensitive error:&error];
    NSRange rangeOfFirstMatch = [regex rangeOfFirstMatchInString:youtubeURL options:0 range:NSMakeRange(0, [youtubeURL length])];
    if(!NSEqualRanges(rangeOfFirstMatch, NSMakeRange(NSNotFound, 0)))
    {
        NSString *substringForFirstMatch = [youtubeURL substringWithRange:rangeOfFirstMatch];
        return substringForFirstMatch;
    }
    return nil;
}

答案 5 :(得分:0)

我遇到了同样的问题。您忘记在youtube链接中输入“http://”。

这是正确的代码:

NSURL *url = [NSURL URLWithString:@"<iframe width=\"560\" height=\"315\" src=\"http://www.youtube.com/embed/AmMF7hWrYZk\" frameborder=\"0\" allowfullscreen></iframe>"];
NSURLRequest *requestURL = [NSURLRequest requestWithURL:url];
[webView loadRequest:requestURL];