Android使用VideoView播放视频

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();
    }

下面是具体效果,还不错吧,播放起来还是很流畅的,

但是Video播放视频时有格式限制的,应该是仅仅只有 3gp与 MP4 可用, 播放网络视频需要添加联网权限。

完整代码没有做成Demo,需要的可以自己去摘,在项目中的SplashActivity:https://github.com/CodingForAndroid/appone/

文章导航