此代码在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
答案 0 :(得分:7)
这听起来像以下针对Youtube iframe播放器API的开放式错误:
Issue 5204: js iframe api playVideo() doesn't play video in iOS 7
答案 1 :(得分:-1)
您可以通过将baseURL更改为:
来修复自动播放行为 [[NSBundle mainBundle] resourceURL]