YouTubeembedded的UIWebViews不再适用于iOS

我有一段时间的应用程序,它使用UIWebView在某些视图上显示YouTubevideo。 今天,没有任何代码的变化,我的用户开始抱怨YouTube的embedded不工作:与静止框架和播放button的embedded显示正常,但点击播放button时,embedded屏幕变黑,没有加载,没有声音或video。

这里是我的函数来生成一个embedded代码从YouTube ID放入UIWebView

 + (NSString*)codeForYouTubeID:(NSString*)videoID width:(NSUInteger)width height:(NSUInteger)height { static NSString *fmt = @"<iframe width='%d' height='%d' src='http://www.youtube.com/embed/%@?showinfo=0&modestbranding=1&rel=0&showsearch=0' frameborder='0' scrolling='0' allowfullscreen></iframe>"; return [NSString stringWithFormat:fmt, width, height, videoID]; } 

将生成的代码放入JSFiddle中 ,embedded显示并播放正常。 我也使用了下面的替代格式string与相同的结果(从这里 StackOverflow的答案):

 static NSString *fmt = @"<object>\ <param name=\"movie\" value=\"http://www.youtube.com/v/%@\"></param>\ <embed src=\"http://www.youtube.com/v/%@\" type=\"application/x-shockwave-flash\"></embed>\ </object>"; 

这有相同的结果,但有一个笨拙的自动大小的embedded。 行为是一样的:用户可以点击播放button,然后embedded框架变黑,没有其他事情发生。 对我来说,这是发生在我的testing手机(iPhone 4,iOS 7)和模拟器(iOS6和7)上。 这在今天之前没有发生,没有代码已经改变。 有谁最近经历过这个?

有人在这里find了解决办法。 不知道如何标记这样的答案,但我会复制到这里为了方便。

从本质上讲,这个问题似乎与YouTube方面playsinline参数的实现有所变化有关。 无论您提供什么样的价值,或者是否使用默认值,都无关紧要,但它似乎打破了以这种方式embedded的所有 Youtubevideo。

解决scheme似乎在调用[myWebView loadHTMLString:string]之前添加以下行:

 [myWebView setMediaPlaybackRequiresUserAction:NO]; 

我不知道为什么这样做能解决这个问题,但非常感谢Kyokook Hwang提供这样的答案。 它为我工作,而且它似乎也适用于其他许多人。

我遇到了完全相同的问题。 我不知道究竟是什么时候开始发生的,因为我今天刚把它报告为一个bug,但是它完全按照你描述的方式显示。

这听起来像谷歌的一端出了问题,让我们希望这不是故意的。

编辑:一位朋友指出我可能与此相关的post: https : //productforums.google.com/forum/#!category-topic/youtube/report- a-technical-issue/iHd0NK33k-I