iOS6的播放视频与web视图(工作在iOS5中)

问题描述:

我曾经使用UIWebViews中使用下面的代码打我的iOS应用内视频:iOS6的播放视频与web视图(工作在iOS5中)

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视频?

谢谢

我刚和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元素。

替换为你的代码中遵循

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,所以你必须使用这个网站的iOS 6和iOS 5中使用旧的一个。 请记住,您的youtube视频的url链接应该像 http://www.youtube.com/embed/video_Id?autoplay=1 您可以在其中用自己的视频ID替换video_Id。

如果您在使用的PhoneGap嵌入您在PhoneGap的设置

YouTube的网页视图在iOS6的设置OpenAllWhitelistURLsInWebView为是需要启用的WebView中的cookies。为了做到这一点,你需要添加下面的指令中的AppDelegate:

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

我在模拟器尝试这个

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

和它的作品

直接提供的YouTube视频嵌入src复制到Web视图和它的作品。