VideoViewで動画を再生する

今回はVideoViewクラスを使って動画ファイルを再生する方法を紹介します。
再生や一時停止などのコントローラも簡単に利用することができます。もちろん独自のボタンを作成し、再生をコントロールすることも可能です。
- ローカルのファイル
- ネットワーク上のファイル
を再生することが可能です。
それでは続きへどうぞ
再生までの手順
VideoViewクラス
まずはViewViewクラスを生成します。
名前から推測できるようにスーパークラスはViewクラス(1段上のスーパークラスはSurfaceView)です。レイアウトファイルにXMLで記述するしてもよいですし、ソースコード上で生成してaddViewする方法でも大丈夫です。
サンプルではレイアウトファイルに記述します。
1 2 3 4 | <VideoView android:id="@+id/videoView" android:layout_height="wrap_content" android:layout_width="wrap_content"> </VideoView> |
再生するファイルの指定
2つのメソッドがあります。
- ローカルのファイルを指定する場合:void setVideoPath(String path)
1 2 3 | VideoView videoView = (VideoView)findViewById(R.id.videoView);// インターネット上のファイルを再生 |
- ネットワーク上のファイルを指定する場合:void setVideoURI(Uri uri)
1 2 3 | 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を呼び出せば再生が開始されます。
1 2 3 4 | VideoView videoView = (VideoView)findViewById(R.id.videoView);// インターネット上のファイルを再生videoView.start(); |
コントローラー

自分でUIを配置し、そのOnClickイベントでVideoView#startなどを呼び出す方法もありますが、MediaControllerクラスを使って簡単にコントローラーは配置することもできます。
MediaControllerクラスのインスタンスを生成し、VideoView#setMediaControllerで設定します。
1 | videoView.setMediaController(new MediaController(this)); |
One Comment
