今回は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));