UIWebView在iOS7中无法自动播放YouTube视频的iframe API。

6
这段代码在iOS 6的uiwebview中能够很好地实现视频内联自动播放。然而,我升级到了iOS 7,现在我的视频无法自动播放。有时候视频会自动播放,有时候不会。它只有约10%的时间能够自动播放。大部分时间我看到的是一个旋转的圆圈。如果我从src标签中删除&playsinline=1,它将会全屏自动播放(这不是我想要的)。我花费了很多时间为这个应用程序创建了一个自定义播放器,现在它不能正常工作。非常感谢任何帮助。
_youTubeWebView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 20, 320, 184)];
_youTubeWebView.delegate = self;
_youTubeWebView.scrollView.bounces = NO;
_youTubeWebView.allowsInlineMediaPlayback = YES;
_youTubeWebView.mediaPlaybackAllowsAirPlay = YES;
_youTubeWebView.mediaPlaybackRequiresUserAction = NO;
[self.view addSubview:_youTubeWebView];

 NSString* embedHTML = [NSString stringWithFormat:@"<html><body style='margin:0px;padding:0px;'><script type='text/javascript' src='http://www.youtube.com/iframe_api'></script><script type='text/javascript'>function onYouTubeIframeAPIReady(){ytplayer=new YT.Player('playerId',{events:{onReady:onPlayerReady}})}function onPlayerReady(a){ a.target.playVideo(); }</script><iframe id='playerId' type='text/html' width='%@' height='%@'src='http://www.youtube.com/embed/%@?enablejsapi=1&rel=0&playsinline=1&controls=0&showinfo=0' frameborder='0'></body></html>", w, h, videoId];
 [_youTubeWebView loadHTMLString:embedHTML baseURL:nil];

这里有一个快速测试文件的链接。videoPlayerTest.zip

这个链接提供了一个测试视频播放器的zip文件。
2个回答

7

谢谢,我没有疯掉。我现在还不能投票,否则我会投票支持这个答案。 - Steve McIntyre

-1

您可以通过将baseURL更改为以下内容来修复自动播放行为:

[[NSBundle mainBundle] resourceURL]


仍然不起作用。在iOS 7中,我大约90%的时间都会看到旋转的圆圈。我还注意到YouTube应用程序现在在视频中有很多错误。我必须双击才能让它们开始播放。 - Steve McIntyre

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接