web-dev-qa-db-ja.com

Android 3.0.1のWebViewにFlashビデオが表示されない

Flashを使用してWebサイトを表示するシンプルなWebView(Adobe Flash Webサイト)があります-実行中のXoomタブレットでテストAndroid 3.0.1と新しくリリースされたFlash 10.2

Stackoverflowに関するすべての質問を参照した後、次のように設定しました。

mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.getSettings().setPluginState(WebSettings.PluginState.ON);
mWebView.loadUrl("http://www.Adobe.com/software/flash/about/");

プラグインJavaScriptの両方がgetSettings()を使用してWebViewで有効になっていますが、Flashが表示されません。 setPluginStateON_DEMANDに設定すると、Flashの正しいプレースホルダーが表示されます-さらに、Flashを配置するアイテムをタップすると、Flashが消えます(まるでFlashビデオはレンダリングに失敗し、オーディオのみ(Flashコンテンツによって異なります)を聞くことができます。

不足しているFlashをタップし、長押しして、左上の新しいFlashの[フルスクリーン]ボタンをタップすることもできることに気づきました[〜#〜] should [〜#〜] =すると、フルスクリーンモードで正しく表示されます。しかし、WebViewにフォールバックすると、再び表示に失敗し、オーディオのみが再生されます。

どんな考えでも大歓迎です! Android 3.0リリース!投稿の数か月前に私が投稿のことを言及している理由についての詳細なしに、何ヶ月も前に投稿されたものを私に参照しないでください。助けてくれてありがとう。素晴らしいコミュニティ!

33
Xezuka

したがって、1週間半以上高低を検索し、さまざまな手法を試し、タブレットを窓から投げ出す準備がほぼ完了した後、ようやくそれを理解しました。そして、簡単に修正できることにあまり満足していません。 ;そしてまた、私は!

これは、Xoom Android 3.0.1タブレットでPluginStateがONになっているタブレットのWebViewにロードされないFlashビデオの問題に向けられたものです。質問を読んでから、答えを読んでください。お楽しみください!

ステップ1:アプリケーションマニフェストXMLの下のタグにこれを追加するだけ

Android:hardwareAccelerated="true"

ステップ2:アプリをロードして、Flash対応のWebViewをお楽しみください!

幸運を!

35
Xezuka
webView.setWebChromeClient(new WebChromeClient());

理由はわかりませんが、これが役に立ちました。

4
narek.gevorgyan

私は同じ問題を経験しました、私はここでしか音声を聞くことができず、WebViewに黒い画面が表示されます。私はAndroid 3.2をMotorola Xoomで使用しています。

このソリューションをたくさん検索した後、ようやくアプリケーションでビデオを適切に再生することができました。

ソリューション:Activityを含む単一のWebViewを含む別のAndroidプロジェクトを作成し、上記のトリックを設定しました(つまりAndroid:hardwareAccelerated="true"など)。驚いたことに、このプロジェクトでビデオを完全に再生できました。

奇妙なことに、アプリケーションのプロジェクトで同じソースコードなどをすべて使用して再生することができませんでした。とにかくそれは私のために働いた、方法がわからない!

3
Bharat Dodeja

APIドキュメントから here

Androidマニフェストファイルで、<application>タグに次の属性を追加して、アプリケーション全体のハードウェアアクセラレーションを有効にします。

<application Android:hardwareAccelerated="true" ...>

アクティビティレベルでハードウェアアクセラレーションを有効または無効にするには、Android:hardwareAccelerated要素の<activity>属性を使用できます。

<application Android:hardwareAccelerated="true">
    <activity ... />
    <activity Android:hardwareAccelerated="false" />
</application>
1