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