質問

私の Android アプリには、Web サイトからの HTML データを表示する WebView があります。場合によっては、ページに YouTube 埋め込みオブジェクトが含まれることがあります。これはアプリでは正しく表示されません。WebView で YouTube ビデオを表示/再生する方法はありますか?ありがとう。

役に立ちましたか?

解決

あなたは彼らがおそらくフラッシュを持っているデバイスを除いて埋め込まれて表示することはできません。

あなたがYouTubeのビデオの詳細を解析することができますしかし、もし、あなたがYouTubeアプリケーションを持っているそれらのAndroidデバイスのために... YouTubeアプリケーションでそれらを表示しますACTION_VIEWIntentを構築できる可能性があります。

また、私の知る限りでは、ブラウザアプリケーションでサポートされているHTML5の<video>タグ、を試す可能性があるかもしれないのでWebViewで仕事ます。

他のヒント

この投稿を見つけました: リンク

実際、基本的にはアプリケーション マニフェスト XML に追加するだけで済みました。

android:hardwareAccelerated="true"

なんと、YouTube ビデオも再生され始めました。

webView.setWebViewClient(new WebViewClient()
{
 public boolean shouldOverrideUrlLoading(WebView view, String url)
 {
  // YouTube video link
  if (url.startsWith("vnd.youtube:"))
  {
   int n = url.indexOf("?");
   if (n > 0)
   {
    startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(String.format("http://www.youtube.com/v/%s", url.substring("vnd.youtube:".length(),n)));
   }
   return (true);
  }

  return (false);
 }
});

あなたのWebView(WebViewの)URLであなたにshouldOverrideUrlLoadingメッセージを送信することを次のようになります:

vnd.youtube:{VIDEO_ID} {PARMS}

http://www.youtube.com/v/ の{VIDEO_ID}に変換し、これを解析し、次いで手意図として、この改訂URLオフます。

私の作品...

ここの Android-Developers グループに関する私の投稿をお読みください。 エミュレータで YouTube を使用しますか?

基本的に、YouTube クリップを再生する最良の方法は、独自のアクティビティを作成することです。その良い例を次に示します。 アプリを磨きましょう:無料の埋め込み可能な Android YouTube アクティビティ!

アップデート:YouTube トークンの変更による非互換性の問題が修正されました。最新バージョンのコンポーネントは、公開されている YouTube ビデオで問題なく動作するはずです。

Androidのではなく、YouTubeと問題があると思われるので、

組み込みユーチューブの動画は、デスクトップブラウザでと(でもiPhone上のアプリの中に埋め込まれた)iPhoneのブラウザで正常に動作します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top