前言
本篇博客就来讲讲 VideoView 如何播放视频,最后将以一个简单的 Demo 演示。
常用方法- int getCurrentPosition():获取当前播放的位置。
- int getDuration():获取当前播放视频的总长度。
- isPlaying():当前VideoView是否在播放视频。
- void pause():暂停
- void seekTo(int msec):从第几毫秒开始播放。
- void resume():重新播放。
- void setVideoPath(String path):以文件路径的方式设置VideoView播放的视频源。
- void setVideoURI(Uri uri):以Uri的方式设置VideoView播放的视频源,可以是网络Uri或本地Uri。
- void start():开始播放。
- void stopPlayback():停止播放。
- setMediaController(MediaController controller):设置MediaController控制器。
- setOnCompletionListener(MediaPlayer.onCompletionListener l):监听播放完成的事件。
- setOnErrorListener(MediaPlayer.OnErrorListener l):监听播放发生错误时候的事件。
- setOnPreparedListener(MediaPlayer.OnPreparedListener l)::监听视频装载完成的事件。
1. 布局文件
2. 代码
public class MainActivity extends BaseActivity {
@BindView(R.id.btn_start)
Button mStart;
@BindView(R.id.btn_pause)
Button mPause;
@BindView(R.id.btn_stop)
Button mStop;
@BindView(R.id.videoView)
VideoView mVideoView;
@Override
protected int getLayoutId() {
return R.layout.activity_main;
}
@Override
protected void initView() {
//根据文件路径播放
if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
mVideoView.setVideoPath(Environment.getExternalStorageDirectory().getAbsolutePath() + "/DCIM/Camera/activity_local_video.mp4");
}
//读取放在raw目录下的文件
//videoView.setVideoURI(Uri.parse("android.resource://com.jay.videoviewdemo/" + R.raw.lesson));
mVideoView.setMediaController(new MediaController(this));
}
@OnClick({R.id.btn_start,R.id.btn_pause,R.id.btn_stop})
public void clicked(View view) {
switch (view.getId()) {
case R.id.btn_start:
mVideoView.start();
break;
case R.id.btn_pause:
mVideoView.pause();
break;
case R.id.btn_stop:
mVideoView.stopPlayback();
break;
}
}
}
3. 资源文件位置