当前位置:   article > 正文

Android使用VideoView连续播放视频文件_android videoview 播放raw里面视频

android videoview 播放raw里面视频

引言
在开发Android应用程序时,我们经常需要实现视频播放功能。而VideoView是Android提供的一个用于播放视频的组件,它简单易用,并且支持多种视频格式。本文将介绍如何使用VideoView组件实现连续播放视频文件的功能。
在这里插入图片描述


1.导入视频文件

首先,我们需要将要播放的视频文件导入到Android项目中的“res/raw”文件夹中。如果该文件夹不存在,可以手动创建。将视频文件拖拽到该文件夹中即可。

2.在布局文件中添加VideoView组件

在需要显示视频的Activity的布局文件中,添加一个VideoView组件。可以使用以下代码示例:

<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools">

    <data>

        <variable
            name="clickListener"
            type="android.view.View.OnClickListener" />
    </data>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@mipmap/common_backgroug"
        android:orientation="vertical"
        android:gravity="center"
        tools:context=".activity.VideoActivity">


        <VideoView
            android:id="@+id/vv_content"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />

    </LinearLayout>
</layout>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27

在这里插入图片描述

3.在Activity中初始化VideoView并设置视频源

在Activity的Java文件中,初始化VideoView并设置视频源。可以使用以下代码示例:

  • 播放内部存储中的视频
	public static String VIDEO_LocalPATH=Environment.getExternalStorageDirectory().toString()+"/视频文件夹/";
    
	initVideoLocalPath(VIDEO_LocalPATH+"start.mp4");//播放
   	 
    /**
     * 播放内部存储中的视频
     * @param path
     */
    private void initVideoLocalPath(String path) {
        dataBinding.vvContent.setVideoPath(path); // 设置视频视图的视频路径
//        MediaController mc = new MediaController(this); // 创建一个媒体控制条
//        dataBinding.vvContent.setMediaController(mc); // 给视频视图设置相关联的媒体控制条
//        mc.setMediaPlayer(dataBinding.vvContent); // 给媒体控制条设置相关联的视频视图
        dataBinding.vvContent.start(); // 视频视图开始播放
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

在这里插入图片描述

  • 播放raw中的视频
	public static String VIDEO_PATH="android.resource://com.test/";

	initVideoPath(VIDEO_PATH + R.raw.start);//播放
		
        /**
     * 播放Raw中的视频
     * @param path
     */
    private void initVideoPath(String path) {
        dataBinding.vvContent.setVideoURI(Uri.parse(path)); // 设置视频视图的视频路径
//        MediaController mc = new MediaController(this); // 创建一个媒体控制条
//        dataBinding.vvContent.setMediaController(mc); // 给视频视图设置相关联的媒体控制条
//        mc.setMediaPlayer(dataBinding.vvContent); // 给媒体控制条设置相关联的视频视图
        dataBinding.vvContent.start(); // 视频视图开始播放
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

在这里插入图片描述

4.监听视频播放完成事件

为了实现连续播放视频文件的功能,我们需要监听视频播放完成事件,并在事件触发时重新设置视频源。可以使用以下代码示例:

  • 如果视频播放过程中切换到home再次打开继续播放视频
    private int mVideoCurrantPosition = 0;
    @Override
    protected void onResume() {
        super.onResume();
        //如果视频播放过程中切换到home再次打开继续播放视频
        dataBinding.vvContent.seekTo(mVideoCurrantPosition);
        dataBinding.vvContent.start();
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 在视频播放过程中切换到home停止播放视频,并且记录下当前的播放位置
    private int mVideoCurrantPosition = 0;
    @Override
    protected void onPause() {
        super.onPause();
        //在视频播放过程中切换到home停止播放视频,并且记录下当前的播放位置
        mVideoCurrantPosition = dataBinding.vvContent.getCurrentPosition();
        dataBinding.vvContent.pause();
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

在这里插入图片描述

  • 视频结束回调 判断是否还有未完成播放的视频
     int videoIndex=0;//记录当前播放到第几个视频
    dataBinding.vvContent.setOnCompletionListener(mp -> {
            if (videoIndex < videoArray.length) {
initVideoLocalPath(VIDEO_LocalPATH+videoArray[videoIndex]+".mp4");
                videoIndex += 1;
            } else if (videoIndex == videoArray.length) {
                videoIndex += 1;
                initVideoLocalPath(VIDEO_LocalPATH+"end.mp4");
//                initVideoPath(VIDEO_PATH + R.raw.end);//播放结束视频
            } else {
                Intent intent = new Intent(VideoActivity.this, ScanFinshActivity.class);
                finish();
                startActivity(intent);//结束视频播放完跳转到其他界面
            }
        });
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

在这里插入图片描述


总结

通过以上步骤,我们可以在Android应用程序中使用VideoView组件实现连续播放视频文件的功能。首先导入视频文件,然后在布局文件中添加VideoView组件,并在Activity中初始化VideoView并设置视频源。同时监听视频播放完成事件,在事件触发时重新设置视频源,以实现连续播放视频文件的效果。

希望本文对你有所帮助!如果有任何问题,请随时提问。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/499343
推荐阅读
相关标签
  

闽ICP备14008679号