8

私のAndroidアプリでは、ユーザーが画像を1回タップし、YouTube動画を自動的に再生し、動画が完了するとすぐにアプリに戻るようにします。Androidでこれを行うための最良の方法は何ですか?

インテントを使ってみました。これは、ビデオがYouTubeのWebページであると私が思うものに表示されるという点で機能します。ただし、ビデオを再生するには、もう一度タップする必要があります。できればこれは避けたいです。

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

Webビューを使ってクリエイティブにすることで、これをiOSでうまく機能させることができました。私はそれがAndroid上でより簡単であることを望んでいます。ドキュメントは確かにそれを簡単に聞こえるようにします。

乾杯!

4

1 に答える 1

29

更新:以下はすべて正しいですが、Android 用の公式 YouTube APIが利用できるようになりました。

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

2 つ目のオプションとして、MediaPlayer API を使用して YouTube 動画を再生できます。ただし、このアプローチには 3 つの注意事項があります。

1) YouTube の GData Web サービス 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 以降では機能しません。

<video>2) HTML5 経由で YouTube を再生するためのタグを埋め込むことができます。これに対するサポートは、Android のさまざまなリリースによって異なります。Android 4.0 以降で問題なく動作します。以前のリリースでは、HTML5 の<video>サポートが多少むらがあります。そのため、アプリケーションがサポートする必要がある Android のリリースに応じて、Android 4.x 以降では HTML5 を埋め込み、それ以前のすべてのバージョンの Android では Flash を埋め込むというハイブリッド アプローチを取ることができます。

ここ StackOverflow には、HTML5 を使用して YouTube ビデオを再生することに関するスレッドがいくつかあります。1 か所で従わなければならないプロセス全体を実際に説明しているものはありません。それらのいくつかへのリンクを次に示します。

Android - WebView で Youtube ビデオを再生するには?

Android の WebView に YouTube クリップを埋め込む方法

Android WebView で Youtube HTML5 埋め込みビデオを再生する

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

于 2012-07-18T22:17:53.540 に答える