web-dev-qa-db-ja.com

Android WebViewでYoutube HTML5埋め込み動画を再生します

HTML5 Youtube埋め込みWebView。アプリケーションでYoutubeビデオを再生したい。私はシステムをWebからビデオを再生するためにより柔軟にしたいので、VideoViewではなくWebViewを使用することにしました。

AndroidでYouTubeを再生するには多くの方法がありますが、YouTube埋め込みバージョンを使用します。 " http://www.youtube.com/embed/___________________ "。これは、Androidがフラッシュをサポートしていないときに見つけた解決策の1つです。

問題:

埋め込まれたYoutubeを含め、WebViewは通常どおりロードされます。しかし、最初はYouTubeに黒い画面が表示されます。

クリックすると。最初の画像のみをロードし、その後は再生しません。 Androidブラウザでプレイしようとしましたが、スムーズに動作しますが、webViewでは動作しません。

なぜか?

以下は私のコードの一部です:

WebView wv = new WebView(getApplicationContext());
wv.getSettings().setPluginState(PluginState.ON);
wv.getSettings().setJavaScriptEnabled(true);
wv.loadUrl("http://apiblog.youtube.com/2010/07/new-way-to-embed-youtube-videos.html");
setContentView(wv);

以下は、私が非常に便利だと思ったリソースの一部です。

サポートとヘルプを事前にありがとう:)


更新(2011年6月13日):

WebView内に http://m.youtube.com を正常にロードしましたが、ビデオを再生できません。しかし、AndroidブラウザでURLをロードしようとすると、再生できます。

ここから、WebViewのyoutubeサイトにサインインしていないことに気づきました。それでは、WebViewが携帯電話のYoutubeアカウントと同じ認証情報を使用できるようにするにはどうすればよいですか?実際に動作しますか?

26
Yeo

ステップ1:これをマニフェストファイルに追加するだけです

_Android:hardwareAccelerated="true"_

ステップ2:Webビューのレイヤーを設定しているかどうかを確認します。

(つまり)//myWebView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);

ハードウェアアクセラレーションをtrueに設定し、これらの行にコメントを付けるとうまくいきました。

ハードウェアアクセラレーションとレイヤーの詳細については、こちらをご覧ください http://developer.Android.com/guide/topics/graphics/hardware-accel.html

6
N20084753

[〜#〜]編集[〜#〜]

したがって、コメントの会話から差し引いたものです。

このウェブサイト:www.youtube.com/html5には、サインインしてからHTML5ビデオ再生をオプトインする必要があると記載されています

そのため、動画は読み込まれず、Flashバージョンにリダイレクトされており、WebビューにはFlashがありません。

[〜#〜]元の[〜#〜]

URLの読み込みをオーバーライドして、Webビューを使用していますか?

 wv.setWebViewClient(new WebViewClient(){
                    @Override
                    public boolean shouldOverrideUrlLoading(WebView view, String url) {
                            return false;
                    }
            });

ビデオは再生されませんが、Webサイトは読み込まれますか?

あなたはYouTubeに嘘をついてあなたに別のブラウザを教えてみることができます(おそらくAndroidブラウザ)であると見せかけます)Firefoxは次のとおりです:

 wv.getSettings().setUserAgentString("Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/534.36 (KHTML, like Gecko) Chrome/13.0.766.0 Safari/534.36");
5
Blundell

Android WebViewは十分に文書化されていません。私の HTML5WebView と私の古い slides を試してみてください)

0
freedom