在安卓中使用VideoView来播放视频

时间:2022-06-15 09:23:21

第一步:在Activity中放入一个VideoView组件

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:layout_gravity="center"
android:gravity="center">

<VideoView
android:id="@+id/VideoView_advView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="center"/>

</LinearLayout>

第二步:在代码中完成播放视频的功能:

/**
* 创建多媒体播放器,并播放固定目录下的固定名称的视频文件
*/
MediaController mediaController = new MediaController(this);
mediaController.setVisibility(View.INVISIBLE);//隐藏进度条和食品播放按钮
File videoFile = new File("/mnt/sdcard/Movies/wineAdv.mp4");

// 先判断这个文件是否存在
if (videoFile.exists()) {
System.out.println("文件存在");

VideoView videoView = (VideoView)this.findViewById(R.id.VideoView_advView);
videoView.setVideoPath(videoFile.getAbsolutePath());
System.out.println(videoFile.getAbsolutePath());
// 设置VideView与MediaController建立关联
videoView.setMediaController(mediaController);
// 设置MediaController与VideView建立关联
mediaController.setMediaPlayer(videoView);

// 让VideoView获取焦点
videoView.requestFocus();
// 开始播放
videoView.start();

//设置循环播放
videoView.setOnPreparedListener(new OnPreparedListener() {

@Override
public void onPrepared(MediaPlayer mp) {
mp.setLooping(true);
}
});

//当播放完成时,再次启动播放。即人工循环播放
this.videoView.setOnCompletionListener(new OnCompletionListener(){
@Override
public void onCompletion(MediaPlayer mp) {
videoView.setVideoPath(videoFile.getAbsolutePath());
videoView.start();
}
});
} else {
Toast.makeText(this, "视频文件不存在", Toast.LENGTH_LONG).show();
}