VideoViewで動画を再生する


今回はVideoViewクラスを使って動画ファイルを再生する方法を紹介します。

再生や一時停止などのコントローラも簡単に利用することができます。もちろん独自のボタンを作成し、再生をコントロールすることも可能です。

  • ローカルのファイル
  • ネットワーク上のファイル

を再生することが可能です。
それでは続きへどうぞ

再生までの手順

 

VideoViewクラス

まずはViewViewクラスを生成します。

名前から推測できるようにスーパークラスはViewクラス(1段上のスーパークラスはSurfaceView)です。レイアウトファイルにXMLで記述するしてもよいですし、ソースコード上で生成してaddViewする方法でも大丈夫です。

サンプルではレイアウトファイルに記述します。

<VideoView android:id="@+id/videoView"
    android:layout_height="wrap_content"
    android:layout_width="wrap_content">
    </VideoView>

再生するファイルの指定

2つのメソッドがあります。

  • ローカルのファイルを指定する場合:void setVideoPath(String path)
VideoView videoView = (VideoView)findViewById(R.id.videoView);
// インターネット上のファイルを再生
videoView.setVideoURI(Uri.parse("http://www.hogehoge.jp/video.mp4"));
  • ネットワーク上のファイルを指定する場合:void setVideoURI(Uri uri)
VideoView videoView = (VideoView)findViewById(R.id.videoView);
// SDカード上のファイルを再生
videoView.setVideoPath(Environment.getExternalStorageDirectory().toString() + "/video.mp4");

再生のコントロール

再生、一時停止、シーク、停止が可能です。

  • VideoView#start():再生開始
  • VideoView#pause():一時停止
  • VideoView#seekTo(int msec):シーク
  • VideoView#stopPlayBack():再生停止

以下のようにstartを呼び出せば再生が開始されます。

VideoView videoView = (VideoView)findViewById(R.id.videoView);
// インターネット上のファイルを再生
videoView.setVideoURI(Uri.parse("http://www.hogehoge.jp/video.mp4"));
videoView.start();

コントローラー

自分でUIを配置し、そのOnClickイベントでVideoView#startなどを呼び出す方法もありますが、MediaControllerクラスを使って簡単にコントローラーは配置することもできます。

MediaControllerクラスのインスタンスを生成し、VideoView#setMediaControllerで設定します。

videoView.setMediaController(new MediaController(this));

関連する記事: