こんにちは、ビデオ プレーヤーを含む Web サイトがあり、そのビデオ プレーヤーを Android アプリケーション内で再生したいと考えています。ビデオ プレーヤーは、Android のネイティブ ブラウザ内でうまく再生されますが、プレーヤーと同じサイトに移動するように WebView を指示すると、ビデオ プレーヤーは表示されず、プレーヤーの周囲のすべてのコンテンツが表示されます。アプリケーションの Web ビュー内でビデオ プレーヤーを再生するにはどうすればよいですか?
3 に答える
Webview は、デフォルトで Javascript を許可しません。これは、ビデオ プレーヤーが Web サイトで使用している可能性が最も高いものです。ほとんどの場合、Webview に Javascript を使用して、少なくともビデオを再生しようとするように指示する必要があります (私はこれを自分で行ったことがないので、通常はビデオのプレーヤー アクティビティを使用します)。
したがって、activies webview オブジェクトを参照することで、次のことができます。
browser = (WebView) findViewById(R.id.webbrowser_wvViewer);
browser.getSettings().setJavaScriptEnabled(true);
ビデオ コーデックが Android webview と互換性がありますか?
ブラウザによって必要な動画コーデックが異なります。このリンクをチェックしてデバッグし、正確なエラーを確認することもできます。
http://www.smartjava.org/content/remote-chrome-debugging-android
Christian、これをテストしている Android OS のバージョンは何ですか?
Android バージョン Gingerbread 以前では、WebView ベースのアプリは、動画を再生できるように WebChromeClient コールバックを実装する必要があります。WebChromeClient のドキュメントは次のとおりです: http://developer.android.com/reference/android/webkit/WebChromeClient.html
具体的には、 onShowCustomView() および onHideCustomView コールバックを見てください。ビデオを再生すると、WebView は、提供した WebChromeClient 実装の onShowCustomView() をコールバックします。このコールバックの最初のパラメータはビューです。これは実際に表示したいビデオです。アプリは、このコールバックをオーバーライドして、このビューをアプリケーションのウィンドウに追加する必要があります。要約すると、手順は次のようになります。 1. アプリで WebView を作成し、アプリで WebChromeClient を実装し、WebView.setWebChromeClient(this) を使用して登録します。2. これで、ユーザーがビデオの再生を選択すると、アプリの onShowCustomView が呼び出されます。3. アプリの onShowCustomView() の実装で、現在表示されている WebView を新しいビューに置き換えることができます。onHideCustomView コールバックで逆を行います。