我一直在寻找通过应用播放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];
答案 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];