我正在开发一个应用程序,我正在为用户提供播放保存在数据库中的Youtube视频的功能。如果用户想要,他可以更新视频。
假设我在DB中保存了http://www.youtube.com/watch?v=1Ziku4FLka4这样的链接,并且我点击了一个按钮点击相同的链接,我已经实现了如下代码:
UIWebView *wv;
strUTube = @"http://www.youtube.com/watch?v=1Ziku4FLka4";
wv = [[UIWebView alloc] initWithFrame:CGRectMake(0,10,viewBG.frame.size.width,viewBG.frame.size.height)];
NSMutableString *html = [[NSMutableString alloc] initWithCapacity:1];
[html appendString:@"<html><head>"];
[html appendString:@"<style type=\"text/css\">"];
[html appendString:@"body {"];
[html appendString:@"background-color: transparent;"];
[html appendString:@"color: brown;"];
[html appendString:@"}"];
[html appendString:@"</style>"];
[html appendString:@"</head><body style=\"margin:0\">"];
[html appendFormat:@"<embed id=\"yt\" src=\"%@\" type=\"application/x-shockwave-flash\"", strUTube];
[html appendFormat:@"width=\"%0.0f\" height=\"%0.0f\"></embed>", viewBG.frame.size.width,viewBG.frame.size.height];
[html appendString:@"</body></html>"];
NSLog(@"html:%@",html);
[wv loadHTMLString:html baseURL:nil];
[viewBG addSubview:wv];
[self.view addSubview:viewBG];
然后在另一个按钮上点击,我正在调用Youtube的主页,并使用以下代码获取在按钮点击事件上打开的URL:
NSString *currentURL = [webView stringByEvaluatingJavaScriptFromString:@"window.location.href"];
NSLog(@"currentURL2 : %@",currentURL);
但是网址会产生http://m.youtube.com/watch?feature=m-trends&v=to7uIG8KYhg之类的结果,以后无法播放。
我还尝试在我的Mac Book上打开网址,但是徒劳无功。
答案 0 :(得分:1)
首先使用新的iFrame方法嵌入管视频。下面是一个模板网址,您可以从代码中填充宽度,高度,视频ID和isAutoplay。
<html>
<head>
<meta name="viewport" content="initial-scale = 1.0,maximum-scale = 1.0" />
</head>
<body style="margin:0;padding:0;" bgcolor="#000000">
<iframe class="youtube-player" background-color:#000000 allowtransparency= "true" type="text/html" width=%f height=%f src="http://www.youtube.com/embed/%@?fs=1&autoplay=%d&loop=%d&rel=0&version=3&enablejsapi=1&showinfo=0" frameborder="0" allowfullscreen>
</iframe>
</body>
</html>
NSString *youTubeHTMLTemplate = [NSString stringWithContentsOfFile: path
encoding: NSUTF8StringEncoding
error: &error];
finalHtml = [NSString stringWithFormat:youTubeHTMLTemplate, htmlFrameWidth, htmlFrameHeight, videoID, isAutoplay];
您可以使用内置的NSString方法轻松地从YouTube视频网址中提取视频ID。
答案 1 :(得分:0)
简单技巧从currentURL下面提取视频ID:
http://m.youtube.com/watch?feature=m-trends&v=to7uIG8KYhg
现在创建新的Youtube VideoURL,如
NSString *newVideoURL = [NSString stringWithFormat:@"http://www.youtube.com/watch?v=%@",extractedVideoID];
现在在嵌入式播放器中播放这个新的VideoURL。