VideoViewでYouTube再生 RTSPを使用

androidアプリを作成中で動画再生の機能をつけようと考え、いろいろ調査しました。

  1. MP4ファイルをDropBoxへ保存し、パブリックリンクを取得し、そのURLをVideoViewで読み込む
  2. WebViewでYouTubeのURLを設定して表示する。
  3. YouTubeのRTSPを取得して、VideoViewで読み込む

 

今回は、3.のYouTubeのRTSPを取得してVideViewで読み込むことにしました。

 

あると便利なもの

FireFoxのアドオン RESTClient

 

YouTubeのRTSPを取得する。

http://www.youtube.com/watch?v=yIWtQsH1P8Q

http://www.youtube.com/watch?v=[動画ID]

 

動画IDを取得する。

 

RESTClientでGETでリクエストをする。

http://gdata.youtube.com/feeds/api/videos?q=[動画ID]&format=6

http://gdata.youtube.com/feeds/api/videos?q=yIWtQsH1P8Q&format=6

 

RestClient1

 

レストポンスで以下が表示されます。マークされている部分をViedeViewで読み込むわけですが、2つがどう違うのか不明、私は下部のほうを読み込みました。

RestClient2

 

main.xml

 

<VideoView

android:id=”@+id/videoView”

android:layout_width=”fill_parent”

android:layout_height=”wrap_content” />

 

MainActivity

 

public class MainActivity extends Activity {

String URL= “rtsp://v4.cache5.c.youtube.com/CiILENy73wIaGQnEP_XBQq2FyBMYESARFEgGUgZ2aWRlb3MM/0/0/0/video.3gp”;

 

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

VideoView myVideoView = (VideoView)findViewById(R.id.videoView);

myVideoView.setVideoURI(Uri.parse(URL));

myVideoView.setMediaController(new MediaController(this));

myVideoView.requestFocus();

myVideoView.start();

}

}