【发布时间】:2013-03-22 09:16:39
【问题描述】:
每个尝试让 Youtube/Vimeo 视频在 iOS 上自动开始播放的人都知道这可能是一项痛苦的任务。 Apple 出于正确的原因阻止了“自动播放”参数,但有时您仍需要让此功能正常工作。
我对@987654321@ 有同样的问题,显然,要让自动播放工作,你需要做一些 JavaScript 魔术,监听播放器的 'onReady' 事件,而不是当播放器加载并准备好播放你调用“player.play()”启动它,无需任何其他用户干预。
Vimeo 也有一些 javascript API,我很确定你可以用它做自动播放技巧,我只是想不出如何使用它。
他们有一个名为Froogaloop 的 JS 迷你库来简化操作,我看到 this answer by @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' 行,但是它接缝 @987654326 @ 方法永远不会被调用,因为 'ready' 事件从未触发 (?)...
有什么想法吗?
【问题讨论】:
标签: javascript iphone ios objective-c vimeo