17

Android アプリで webView を使用して、YouTube iframe プレーヤーを読み込み、ビデオを自動再生しています。Samsung Galaxy S2 および S3 では問題なく動作しますが、Samsung Galaxy S4 で実行すると、自動再生しようとすると常に灰色の画面になります。

Galaxy S4 では、自動再生なしで正常に動作し、再生を開始するにはユーザー アクション (クリック) が必要です (playerVars に「autoplay:1」を追加しても何も起こりません)。

onPlayerReady() で player.playVideo() を呼び出そうとしましたが、次の灰色の画面が表示されました。

ここに画像の説明を入力

LogCat には、奇妙なエラー メッセージも表示されます。

E/IMGSRV(17004): :0: GetPTLAFormat: Invalid format

自動再生に失敗したとき。このメッセージの内容はわかりません。私はそれをグーグルで検索しましたが、何も見つかりませんでした。

WebView の Android コードは次のとおりです。

WebView wv = (WebView) findViewById(R.id.webview);
WebSettings websettings = wv.getSettings();
websettings.setJavaScriptEnabled(true);
websettings.setDomStorageEnabled(true);
websettings.setDatabaseEnabled(true);
wv.loadUrl(strUrl);
wv.setWebViewClient(new WebViewClient());
wv.setWebChromeClient(new WebChromeClient());
wv.setPadding(0, 0, 0, 0);
wv.getSettings().setLoadWithOverviewMode(true);
wv.getSettings().setUseWideViewPort(true);
wv.setVerticalScrollBarEnabled(false);
wv.setHorizontalScrollBarEnabled(false);

これは既知の問題ですか、それとも動画を自動再生する解決策はありますか? ありがとう!

4

3 に答える 3

12

自動再生を無効にすることが「標準」になりつつあると思います。

ちなみに、これを試すことができます

編集:

リンクが切れているので、https://lumi.do/p/04x626i1ngvht/how-to-autoplay-html5-video-on-androidで見つけました:

Android で HTML5 ビデオを「自動再生」する方法
Mathias Desloges が 19/05/11 に Labs で作成

Android デバイスで新しい HTML5 ビデオ タグを試したことはありますか?
私たちが直面した奇妙な問題があります。
コンテキストを設定しましょう。ページの読み込みが完了した直後にビデオの再生を開始します。
HTML5 仕様では「autoplay」属性を使用する必要がありますが、Android では効果がありません。そこで、ページが読み込まれた後に play 関数を呼び出す小さなスクリプトを試してみました。

function callback () { document.querySelector('video').play(); } 
window.addEventListener("load", callback, false);

これは、従来のデスクトップ ブラウザーの "autoplay" 属性の動作をうまく再現しますが、Android ブラウザーでは失敗します。
以前に定義した「callback()」関数を任意のノードのクリック イベントにアタッチしようとしましたが、「クリックすると」ビデオが適切に再生され始めます (通常の動作)。ページの HTML コードの作業を続けているうちに、解決策が見つかりました。

理由は聞かないでください。「ポスター」属性を追加すると機能します。

于 2013-05-15T18:14:32.470 に答える
2

ここで回答したように、自動再生だけでなく自動イベントも制限していると思います。私にとっては、Cordova がロードされたときにトリガーされた jquerymobile のページ遷移でした。クリックでもトリガーされるように切り替えたところ、問題は解決しました。

于 2013-07-26T09:57:31.023 に答える
2

これは、帯域幅の問題により、OS メーカーがビデオの自動再生を制限するようになったことの兆候だと思います。これは、ユーザーが最初にクリックなどのアクションを実行しない限り、Play() への JavaScript 呼び出しが失敗するという iOS でしばらくの間問題でした。それはおそらくあなたの場合に起こっていることです。

于 2013-05-14T16:05:46.517 に答える