每个尝试让 Youtube/Vimeo 视频在 iOS 上自动开始播放的人都知道这可能是一项痛苦的任务。Apple 出于正确的原因阻止了“自动播放”参数,但有时您仍需要让此功能正常工作。
我在自动播放 youtube 视频时遇到了同样的问题,显然,要让自动播放正常工作,你需要做一些 javascript 魔术,监听播放器的“onReady”事件,而不是在播放器加载并准备好播放时调用“ player.play()' 在没有任何其他用户干预的情况下启动它。
Vimeo 也有一些 javascript API,我很确定你可以用它做自动播放技巧,我只是想不出如何使用它。
他们调用了 JS 迷你库Froogaloop
以使事情变得更容易,我看到了 @ila 的这个答案,他将它与以下 html 字符串结合使用:
NSString *htmlString = [NSString stringWithFormat:
@"<html><head>"
"<script src=\"froogaloop.js\"></script>"
" <script>"
"function ready()"
"{$f(document.getElementById(\"player\")).api(\"play\");}"
"function func1() "
"{$f(document.getElementById(\"player\")).addEvent(\"ready\", ready);}"
"window.onload=func1;"
"</script></head><body>"
"<iframe id=\"player\" src=\"http://player.vimeo.com/video/39287488?api=1&player_id=player\" width=\"315\" height=\"455\" frameborder=\"0\" webkit-playsinline>"
" </iframe></body></html>"];
- (void)webViewDidFinishLoad:(UIWebView *)webView {
NSLog(@"webview loaded");
NSString *path = [[NSBundle mainBundle] pathForResource:@"froogaloop" ofType:@"js"];
NSString *jsCode = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
[webView stringByEvaluatingJavaScriptFromString:jsCode];
}
但这对我不起作用,在向此代码添加警报后,我可以看到它func1()
被调用并执行“addEvent”行,但它接缝该ready()
方法永远不会被调用,因为“就绪”事件从未触发(?) ...
有任何想法吗?