私はこれについてググってググった。YouTube から高品質のビデオをシームレスに再生する方法が見つからないようです。
私はこれまでに試しました: 以下で webview を使用します:
htmlstring.append("<iframe title='YouTube video player' class='youtube-player' type='text/html' width='590px' height='370px' src='http://www.youtube.com/embed/");
htmlstring.append(wYouTubeId+"?autoplay='1' frameborder='0' allowFullScreen='1'></iframe>");
htmlstring.append("</center></body></html>");
webView.loadData(htmlstring.toString(), "text/html", "utf-8");
これは正常に機能していますが、何らかの理由で android 4 では機能していません (注 & S3 テスト済み)。
だから私はこのオブジェクトのバージョンを試しました:
htmlstring.append("<object width='480' height='330'><param name='movie' value='http://www.youtube.com/v/"+wYouTubeId+"?version=3&hl=pt_BR&rel=0'>");
htmlstring.append("</param><param name='allowFullScreen' value='true'></param>");
htmlstring.append("<param name='allowscriptaccess' value='always'></param>");
htmlstring.append("<embed src='http://www.youtube.com/v/"+wYouTubeId+"?version=3&hl=pt_BR&rel=0' ");
htmlstring.append("type='application/x-shockwave-flash' width='480' height='330' allowscriptaccess='always' allowfullscreen='true' /></object>");
webView.loadData(htmlstring.toString(), "text/html", "utf-8");
そこにも喜びはありません。回転するだけで、青いレゴブロックが出てきます。ただし、これらのメソッドは Android 2.2 でも機能します。
それから私はこれを試しました:
mp.setDataSource("http://www.youtube.com/v/"+wYouTubeId);
mp.prepare();
mp.start();
チャネル フィードにある直接の rtsp リンクでも試してみましたが、品質が低すぎて使用できません。大量のバージョンが表示されているため、どのバージョンが高品質のものであるかをどのように判断できますか.
また、VideoView を使用して手動で実行しようとしましたが、同じ問題が発生します。
多くの人がこれを使用することをお勧めします:
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(fileListItem.getLink())));
しかし、テキストなしで YouTube アプリを横向きでシームレスに起動する方法がない限り、それはオプションではありません。(私たちのクライアントはそれを望んでいません)。
Android が Google のシステムで、Youtube が Google のシステムなのが不思議に思えますが、iOS では (iOS6 でも!) 動画を実装するのは簡単だったようです。「グーグル」アンドロイドで「グーグル」ビデオを再生するのが難しいのはなぜですか??