VideoView 是Android 自带的可以播放视频的控件。
它的使用方法也比较简单,相当于是surfaceview+mediaplayer 两者的集合体。
对于一个控件的使用 无外乎 三步:
1. 初始化
2 设置数据、添加监听事件的方法
3.在监听方法中 进行处理事件。
对于VideoView来说也不例外, 首先我们可以再xml 布局中引用videoview。
~~~
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent">
<VideoView
android:id="@+id/videoView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_centerInParent="true"/>
</RelativeLayout>
~~~
接下来在相关界面进行初始化设置:
~~~
/**
* 准备播放工作
*/
private void initVideoView() {
String uri = ConfigManage.URL_SPLASH;
videoView.setVideoURI(Uri.parse(uri));
videoView.setOnPreparedListener(this);
// 设置全屏
RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.FILL_PARENT,
RelativeLayout.LayoutParams.FILL_PARENT);
layoutParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
layoutParams.addRule(RelativeLayout.ALIGN_PARENT_TOP);
layoutParams.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
layoutParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
videoView.setLayoutParams(layoutParams);
videoView.setOnCompletionListener(this);
}
~~~
这里设置了 onPrepareListener() 与 OnCompletionListener() 因此我们实现这两个方法
~~~
@Override
public void onPrepared(MediaPlayer mediaPlayer) {
videoView.start();
videoView.requestFocus();
}
@Override
public void onCompletion(MediaPlayer mediaPlayer) {
goToMainActivity();
}
~~~
下面是具体效果,还不错吧,播放起来还是很流畅的,
![](https://box.kancloud.cn/2016-04-06_5704ac5f8e926.jpg)
但是Video播放视频时有格式限制的,应该是仅仅只有 3gp与 MP4 可用, 播放网络视频需要添加联网权限。
完整代码没有做成Demo,需要的可以自己去摘,在项目中的SplashActivity:[https://github.com/CodingForAndroid/appone/](https://github.com/CodingForAndroid/appone/)