# android-eric-video-play **Repository Path**: tym_hmm/android-eric-video-play ## Basic Information - **Project Name**: android-eric-video-play - **Description**: 模块化-基于qs 播放器修改,支持列表流视频 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-01-01 - **Last Updated**: 2024-01-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### android 播放器 基于 GSYVideoPlayer 8.5.0 > 独立封装成模块 [官方地址=>https://github.com/CarGuo/GSYVideoPlayer](https://github.com/CarGuo/GSYVideoPlayer) ### 完成播放器封装 1. 自动播放 2. 播放前自定拦截事件 ### 要求 1. gradle 8.0 2. java17 ### 8.0 gradle 升级备注 根目录下 gradle.properties 文件 ```Gradle org.gradle.jvmargs=-Xmx4g -XX:+UseParallelGC -Dfile.encoding=UTF-8 org.gradle.parallel=true # 是否打包APK,打正式包时请设置为true,使用正式的签名 isNeedPackage=false # 是否使用booster优化APK,这里需要注意gradle的版本,对于最新的gradle版本可能存在兼容问题 isUseBooster=false # androidx与super冲时开启 useAndroidX enableJetifier android.useAndroidX=true android.enableJetifier=true #android.defaults.buildfeatures.buildconfig=true # 找不到资源时开启 android.nonFinalResIds=false # 共享组件资源 android.nonTransitiveRClass=false ``` ### 使用 1. 在布局layout中增加 ```xml ``` 2. 初始化 ```java // 定义播放器控制 private EricVideoPlayer videoPlayContainer; videoPlayContainer = binding.videoPlayContainer; // 设置监听事件 OnEricVideoPlayerListener videoPlayContainer.setOnEricVideoPlayerListener(onEricPlayerVideoListener); // 初始化参数 内部完成 videoPlayContainer.initOptions(requireActivity()); ``` 3. 加载前设置加载loading ```java // 在视频装载前远成请求获取时设置 videoPlayContainer.setLoadText("loading title", "loading desc 为null不显示"); // 设置装载loading videoPlayContainer.setUpVideo(dataVideoParse.getVideoUrl(), "显示视频标题", "loading title"); // 拦截设置 不拦截时,视频加载完成直接播放 videoPlayContainer.setIntercept(dataVideoParse.geteMessage(), "广告是为了永久免费", "观看广告"); // 加载视频错误提示 videoPlayContainer.setError(eventMessage, msg); ``` 4. 生命周期说明 ```java // 界面恢复 videoPlayContainer.onResume(); // 界面暂停 videoPlayContainer.onPause(); // 界面销毁 videoPlayContainer.onDestroy(); ``` 5. 监听界面返回键 > 分为 `onBackPressed` 和 `onKeyDown` ```java // onBackPressed 监听 @Override public void onBackPressed() { if(videoPlayContainer.onBackPressed(Context)){ return } super.onBackPressed() } // onKeyDown @Override public boolean onKeyDown(int keyCode, KeyEvent event) { // 返回键处理 if (videoPlayContainer.onKeyDown(getContext(), keyCode, event)) { return true; } return super.onKeyDown(keyCode, event); } ```