Youtube/Vimeo の動画を iOS で自動的に再生させようとした人なら誰でも、それが骨の折れる作業になる可能性があることを知っています。Apple は正当な理由で「autoplay」パラメータをブロックしましたが、それでもこの機能を動作させる必要がある場合があります。
どうやら、自動再生を機能させるには、プレーヤーがロードされて再生する準備ができたときよりも、JavaScriptマジックを実行し、プレーヤーの「 onReady」イベントをリッスンする必要があります。 player.play()' を使用して、別のユーザーの介入なしに開始します。
Vimeo にもいくつかの JavaScript API があり、それを使って自動再生のトリックを実行できると確信していますが、使い方がわかりません。
Froogaloop
彼らは物事を簡単にするために呼び出された JS ミニライブラリを持っています。私は@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];
}
しかし、これは私にとってはうまくいきません.このコードにアラートを追加した後、それが呼び出されて「 addEventfunc1()
」行を実行していることがわかります. ...ready()
何か案は?