一、基本介绍
Android提供了一个叫做VideoView的视图类,用于在Android应用程序中播放视频。它可以播放不同格式的视频文件,如MP4、3GP等。VideoView并没有包含任何的进度条和播放控制等,这些都需要我们自己在界面上进行实现。
二、使用方法
VideoView的使用非常简单,只需要在布局文件中添加VideoView即可:
<VideoView
android:id="@+id/video_view"
android:layout_width="match_parent"
android:layout_height="match_parent" />
然后在Activity中找到VideoView并设置要播放的视频文件:
VideoView mVideoView = (VideoView) findViewById(R.id.video_view);
mVideoView.setVideoURI(Uri.parse("http://example.com/video.mp4"));
mVideoView.start();
以上代码中,我们使用setVideoURI方法设置要播放的视频文件的URI,然后调用start方法开始播放视频。
三、其他常用方法
除了上述介绍的基本使用方法外,还有一些其他常用方法:
1. 暂停和继续
通过VideoView的pause方法可以暂停视频播放,通过start方法可以继续播放。
//暂停
mVideoView.pause();
//继续
mVideoView.start();
2. 拖动进度条
通过seekTo方法可以将视频跳转至指定位置,单位是毫秒。比如我们要将视频跳转到第30秒的位置:
mVideoView.seekTo(30000);
3. 视频完成后的操作
通过VideoView的setOnCompletionListener方法可以监听视频播放完成的事件,我们可以在此时做一些相关的操作,比如重新播放视频。
mVideoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
//重新播放
mVideoView.start();
}
});
四、注意事项
视频的大小和码率等因素会对视频播放的流畅度产生影响,如果视频太大或者码率太高,可能会出现卡顿等情况。同时,视频资源应该存放在正确的位置,确保VideoView可以通过URI获取到视频资源。
五、代码示例
下面是一个完整的示例代码:
public class MainActivity extends AppCompatActivity {
private VideoView mVideoView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mVideoView = (VideoView) findViewById(R.id.video_view);
mVideoView.setVideoURI(Uri.parse("http://example.com/video.mp4"));
mVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
mVideoView.start();
}
});
mVideoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
mVideoView.start();
}
});
}
@Override
protected void onPause() {
super.onPause();
mVideoView.pause();
}
@Override
protected void onResume() {
super.onResume();
mVideoView.start();
}
}