Android VideoView 播放视频

除了可以使用 MediaPlayer 播放视频外,Android 还提供了 VideoView 来播放视频

接下来我们将使用 VideoView 开发一个播放视频的应用,最终效果如下


  1. 创建一个 空的 Android 项目 cn.twle.android.VideoView

  2. 在 res 目录上点右键,然后选择 Android resource directory,在弹出的界面中 Resource type 项选择 raw 然后点击 OK

  3. 下载 /static/i/android/fengfeng. mp4 放到 res/raw/ 目录下

    注意去掉 fengfeng .mp4 之间的空格

  4. 修改 activity_main.xml 采用线性布局,添加一个 VideoView 和三个 Button

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:padding="5dp">
    
        <VideoView
            android:id="@+id/videoView"
            android:layout_width="match_parent"
            android:layout_height="300dp" />
    
        <LinearLayout 
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal" >
    
            <Button
                android:id="@+id/btn_start"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="开始" />
    
            <Button
                android:id="@+id/btn_pause"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="暂停 " />
    
            <Button
                android:id="@+id/btn_stop"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="终止" />
        </LinearLayout>
    
    </LinearLayout>
    
  5. 修改 MainActivity.java 绑定布局和创建 VideoView 实例,并且播放 raw 目录下的 fengfeng.mp4

    package cn.twle.android.videoview;
    
    import android.os.Environment;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.View;
    import android.net.Uri;
    import android.widget.Button;
    import android.widget.MediaController;
    import android.widget.VideoView;
    
    public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    
        private VideoView videoView;
        private Button btn_start;
        private Button btn_pause;
        private Button btn_stop;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            bindViews();
        }
    
        private void bindViews() {
            videoView = (VideoView) findViewById(R.id.videoView);
            btn_start = (Button) findViewById(R.id.btn_start);
            btn_pause = (Button) findViewById(R.id.btn_pause);
            btn_stop = (Button) findViewById(R.id.btn_stop);
    
            btn_start.setOnClickListener(this);
            btn_pause.setOnClickListener(this);
            btn_stop.setOnClickListener(this);
    
            //根据文件路径播放
            //if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
            //    videoView.setVideoPath(Environment.getExternalStorageDirectory() + "/lesson.mp4");
            //}
    
            //读取放在 raw 目录下的文件
            videoView.setVideoURI(Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.fengfeng));
            videoView.setMediaController(new MediaController(this));
        }
    
        @Override
        public void onClick(View v) {
            switch (v.getId()) {
                case R.id.btn_start:
                    videoView.start();
                    break;
                case R.id.btn_pause:
                    videoView.pause();
                    break;
                case R.id.btn_stop:
                    videoView.stopPlayback();
                    break;
            }
        }
    }
    

参考文档

  1. 官方 API 文档 VideoView

  2. Android 支持的媒体格式列表 Supported Media Formats

Android 基础教程

关于   |   FAQ   |   我们的愿景   |   广告投放   |  博客

  简单教程,简单编程 - IT 入门首选站

Copyright © 2013-2022 简单教程 twle.cn All Rights Reserved.