iOS6使用webView播放视频(适用于iOS5)

时间:2012-09-21 22:40:06

标签: youtube ios6

我曾经使用uiwebviews在我的iOS应用中播放视频,其代码如下:

NSString *embedHTML = @"\
<html><head>\
<style type=\"text/css\">\
body {\
background-color: transparent;\
color: white;\
}\
</style>\
</head><body style=\"margin:0\">\
<embed id=\"yt\" src=\"%@\" type=\"application/x-shockwave-flash\" \
width=\"%0.0f\" height=\"%0.0f\"></embed>\
</body></html>";

NSString *html = [NSString stringWithFormat:embedHTML, urlToOpen, frame.size.width, frame.size.height];
self.videoView = [[UIWebView alloc] initWithFrame:frame];
[videoView loadHTMLString:html baseURL:nil];
[self.videoView setDelegate:self];
[self.view addSubview:videoView];
[videoView release];

使用iOS6无效。

有没有人找到任何解决方案来播放使用iOS6编译的YouTube视频?

由于

6 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

我刚刚使用iOS6模拟器和iOS5设备进行测试,如果您使用新的嵌入代码(iframe),那么它可以正常工作。

<iframe class="youtube-player" type="text/html" width="320" height="200" src="http://www.youtube.com/embed/VIDEOID" frameborder="0"></iframe>

唯一的缺点是iframe包含许多下载的dom元素。

答案 2 :(得分:0)

使用以下

替换您的代码
   NSString *embedHTML = @"\
    <html><head>\
    <style type=\"text/css\">\
    body {\
    background-color: transparent;\
    color: white;\
    }\
    </style>\
    </head><body style=\"margin:0\">\
    <iframe title=\"YouTube Video\" class=\"youtube-player\" type=\"text/html\"\
    width=\"%0.0f\" height=\"%0.0f\" src=\"%@\"\
    frameborder=\"0\" allowFullScreen ></iframe>";
    NSString *urlToOpen = @"http://www.youtube.com/embed/u1zgFlCw8Aw?autoplay=1";
    NSString *html = [NSString stringWithFormat:embedHTML, urlToOpen, frame.size.width,     frame.size.height];
    self.videoView = [[UIWebView alloc] initWithFrame:frame];
    [videoView loadHTMLString:html baseURL:nil];
    [self.videoView setDelegate:self];
    [self.view addSubview:videoView];
    [videoView release];

由于Youtube已丢弃webview视频并引入iframe,因此您必须使用此html for ios 6和ios 5使用旧版本。 请记住,youtube视频的网址链接应该是这样的 http://www.youtube.com/embed/video_Id?autoplay=1 您可以将video_Id替换为您自己的视频ID。

答案 3 :(得分:0)

如果您在Phonegap中使用嵌入,则在Phonegap设置中将OpenAllWhitelistURLsInWebView设置为YES

答案 4 :(得分:0)

在iOS6中使用Webview的Youtube需要在WebView中启用Cookie。为此,您需要在AppDelegate中添加以下指令:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
      [[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookieAcceptPolicy:NSHTTPCookieAcceptPolicyAlways];
      ...
}

答案 5 :(得分:0)

我在模拟器中试过这个

[_ webview loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@“https://www.youtube.com/embed/b22cH2sfVcc”]]];

并且有效

直接将youtube视频的嵌入式src提供给网络视图,然后就可以了。