我想使用 youtube 视频 url 播放 youtube 视频。
我在 iOS 5.1.1 版本中成功播放了视频,但在 iOS 5.0.1 和 4.0 或更低版本中无法播放视频。我正在使用 webview 播放视频。
对于低于 5 的 IOS,您需要使用 iframe :
NSString *youTubeVideoHTML = @"<iframe id=\"yt\" class=\"youtube-player\" type=\"text/html\" width=\"280\" height=\"186\" src=\"http://www.youtube.com/embed/xxxxxx\" frameborder=\"0\">";
and for ios 5 above we can use embed :
NSString *youTubeVideoHTML = @"<html><head>\
<body style=\"margin:0\">\
<embed id=\"yt\" src=\"http://www.youtube.com/watch?v=xxxxxx?autoplay=1\" type=\"application/x-shockwave-flash\" \
width=\"%0.0f\" height=\"%0.0f\"></embed>\
</body></html>";
注意:在 IOS 6 中,我发现 url 仅在我们将 youtube url 传递为:http ://www.youtube.com/v/xxxxxx?autoplay=1 时才有效
希望这行得通。
从您的评论看来,您使用了错误的嵌入代码,youtube 嵌入现在看起来像
<iframe width="560" height="315" src="http://www.youtube.com/embed/Cw2RzvK13F4" frameborder="0" allowfullscreen></iframe>
如前所述,flash 不会在 iPhone 上播放,所以它需要使用 HTML5 版本,不幸的是我不认为 100% 的 youtube 视频已经转换,但大多数应该可以工作。
您需要确保为嵌入式视频使用正确的 URL 格式。他们最近有所改变。
Youtube 嵌入式播放器和播放器参数 - YouTube - Google Developers
它看起来像这样:
http://www.youtube.com/embed/VIDEO_ID
这是我的代码,它在所有以前的 iOS 5 版本中都运行良好。试试这个代码。我相信这将解决您的问题。
// Over here Just replace this url with your one's.
NSString *pdfString = @"http://www.youtube.com/watch?v=qe39vPFabuA";
NSString *htmlString = @"<html><head>\n"
"<meta name = \"viewport\" content = \"initial-scale = 1.0, user-scalable = no, width = 320\"/></head>\n"
"<body style=\"background:FFF;margin-top:0px;margin-left:0px\">\n"
"<div><object width=\"320\" height=\"416\">\n"
"<param name=\"movie\" value=\"%@\"></param>\n"
"<param name=\"wmode\" value=\"transparent\"></param>\n"
"<embed src=\"%@\"\n"
"type=\"application/x-shockwave-flash\" wmode=\"transparent\" width=\"320\" height=\"416\"></embed>\n"
"</object></div></body></html>\n";
[webView loadHTMLString:[NSString stringWithFormat:htmlString,[pdfString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]],[pdfString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]] baseURL:nil];
此外,请确保仅在 Device 中测试代码。在模拟器上测试不会播放视频。