2012-07-18 37 views
8

私のAndroidアプリでは、一度画像をタップして、自動的にYouTube動画を再生し、動画が終了するとすぐにユーザーがアプリに戻ってくれるようにしたいと思います。 Androidでこれを行うにはどうすればよいですか?Androidアプリでyoutube動画を再生

私はインテントを使って試しました。これは、YouTubeのウェブページだと思うようにビデオがアップするという点で機能します。しかし、ビデオを再生するには別のタップが必要です。私は可能ならばこれを避けたい。

私は、MediaPlayer、prepareAsync、setOnPreparedListener全体を試してみたことがありません。なんらかの理由で、onPreparedは呼び出されませんでした。例外は投げられませんでした。私はエミュレータを使ってテストしています。私はAndroidが初めてのので、動作が物理デバイス上で異なるかどうかはわかりません。

iOSでうまくいくのは、webviewsで創造的になったことです。私はそれがAndroidでもっと簡単だと思っています。 docs確かにそれはまっすぐに聞こえる。

乾杯!

+0

http://www.gadgetsaint.com/android/play-youtube-android-youtube-player-api/ – ASP

答えて

29

更新:以下の内容はすべて間違いありませんが、official YouTube API for Androidが利用可能になりました。

AndroidでYouTube動画を再生する最も簡単な方法は、インテントを起動してネイティブAndroid YouTubeアプリを起動することです。もちろん、認定されたGoogleデバイスではなく、Googleアプリの補完機能を備えていない場合は、この処理は失敗します。 (Kindle Fireはおそらくそのようなデバイスの最大の例です)。このアプローチの問題は、ビデオが終了したときにユーザーが自動的にあなたのアプリに戻らないということです。彼らは戻るボタンを押す必要があります。そして、あなたはおそらくそれらを失ってしまいました。

第2の選択肢として、MediaPlayer APIを使用してYouTube動画を再生することができます。しかし、このアプローチには3つの注意点があります。

1)YouTubeのGDataウェブサービスAPIを呼び出し、ビデオのIDを渡す必要があります。 H.264でエンコードされたストリームを再生するには、MediaPlayerに渡す必要があるRTSP URLとともに、大量のメタデータを取得します。これがMediaPlayerを使用しようとする試みが失敗した理由です。おそらく、正しいURLを使用してストリームしていなかったでしょう。

2)GData/MediaPlayerアプローチは、低解像度コンテンツ(176x144など)のみを再生します。これは、コンテンツの盗難を防ぐため、YouTubeの意図的な決定です。もちろん、これは非常に満足のいく経験を提供しません。高解像度ストリームを入手するためのバックドアハッキングはありますが、Androidのすべてのリリースでサポートされていないため、YouTubeの利用規約に違反しています。

3)RTSPストリームは一部の内部ネットワーク/ファイアウォールによってブロックされる可能性があるため、この方法はすべてのユーザーにとって機能しない可能性があります。

3番目のオプションは、アプリケーションにWebViewを埋め込むことです。ここには2つのアプローチがあります:

1)Flashオブジェクトを埋め込み、YouTube用の標準デスクトップFlashプレーヤーを実行できます。 Javascript APIを使用してプレーヤを制御し、イベントをネイティブAndroidアプリに中継することさえできます。このアプローチはうまくいきますが、残念なことにFlashはAndroidプラットフォームで廃止されており、Android 4.1以降では動作しません。

2)<video>タグを埋め込み、YouTubeをHTML5経由で再生できます。これのサポートは、Androidのさまざまなリリースによって異なります。 Android 4でもうまく動作します。0以降。以前のリリースではHTML5 <video>が多少不自然になりました。したがって、アプリケーションがサポートしなければならないAndroidのリリースによっては、HTML5をAndroid 4.x以降に埋め込むハイブリッドアプローチや、Androidのすべての以前のバージョンでFlashを使用するハイブリッドアプローチがあります。

ここでは、YouTubeビデオを再生するためにHTML5を使用する方法について、StackOverflowにいくつかのスレッドがあります。それらのどれもあなたが1つの場所で従わなければならないプロセス全体を本当に記述するものではありません。ここではそれらのいくつかのリンクです:

Android - How to play Youtube video in WebView?

How to embed a YouTube clip in a WebView on Android

Play Youtube HTML5 embedded Video in Android WebView

このすべてが来る週/月で劇的に簡単になります。 Google I/O 2012で、彼らはあなたのアプリケーションにYouTubeコンテンツを直接埋め込むことをサポートする、新しいAndroid用YouTube APIを発表/デモしました。これはAndroid 2.2(この執筆時点ではAndroidベースの約95%)です。それは十分に速く到着することはできません。

+0

今後のAPIは素晴らしいと思います!情報をありがとう。 – SundayMonday

+0

私はあなたが言及したバックドアハッキングへの指針に興味があるでしょう。また、Froyo、Gingerbread、HoneycombのYouTube Flash Playerに頼っているハイブリッド戦略を効果的に破棄して、一部の端末でGoogle PlayでAdobe Flashのダウンロードを見ることができないと付け加えたい。 –

+0

@Giuilo - 私たちのアプリでは、Flashが存在しない場合はGData/MediaPlayer APIに戻ります。黒い画面よりも優れています。 – mportuesisf

関連する問題