美文网首页
Android GSYVideoPlayer接入

Android GSYVideoPlayer接入

作者: 因为我的心 | 来源:发表于2023-09-11 10:57 被阅读0次

    一、前言:

    支持 IJKPlayer、 Media3(EXOPlayer2)、MediaPlayer、AliPlayer,实现了多功能的视频播放器。 (请仔细阅读下方各项说明,大多数问题可在下方找到解答)。
    49ecab94932bf9ba270e58dda364a66.png

    gitHub地址点击:

    二、使用

    1、Jitpack 引入方法(推荐, JCenter 即将关闭)

    在project下的build.gradle添加

    allprojects {
        repositories {
            ...
            maven { url 'https://jitpack.io' }
            maven { url "https://maven.aliyun.com/repository/public" }
        }
    }
    

    2、你可以选择下面三种的其中一种,在module下的build.gradle添加。

    A、直接引入

     //完整版引入(包含了全部的依赖)
     implementation 'com.github.CarGuo.GSYVideoPlayer:GSYVideoPlayer:v8.4.0-release-jitpack'
    
    
     //是否需要AliPlayer模式
     implementation 'com.github.CarGuo.GSYVideoPlayer:GSYVideoPlayer-aliplay:v8.4.0-release-jitpack'
    

    注意:完整版包含了下方所有依赖

    implementation "androidx.media3:media3-exoplayer:1.1.0"
    implementation "androidx.media3:media3-exoplayer-dash:1.1.0"
    implementation "androidx.media3:media3-exoplayer-hls:1.1.0"
    implementation"androidx.media3:media3-exoplayer-rtsp:1.1.0"
    implementation "androidx.media3:media3-datasource-rtmp:1.1.0"
    implementation "androidx.media3:media3-session:1.1.0"
    implementation "androidx.media3:media3-extractor:1.1.0"
    implementation "androidx.media3:media3-cast:1.1.0"
    implementation "androidx.media3:media3-exoplayer-smoothstreaming:1.1.0"
    implementation "androidx.media3:media3-ui:1.1.0"
    //-------下方是so库依赖---------
     implementation 'com.github.CarGuo.GSYVideoPlayer:gsyVideoPlayer-java:v8.4.0-release-jitpack'
    //是否需要ExoPlayer模式
    implementation 'com.github.CarGuo.GSYVideoPlayer:GSYVideoPlayer-exo2:v8.4.0-release-jitpack'
    //是否需要AliPlayer模式
    implementation 'com.github.CarGuo.GSYVideoPlayer:GSYVideoPlayer-aliplay:v8.4.0-release-jitpack'
    //根据你的需求ijk模式的so
    implementation 'com.github.CarGuo.GSYVideoPlayer:gsyVideoPlayer-arm64:v8.4.0-release-jitpack'
    implementation 'com.github.CarGuo.GSYVideoPlayer:gsyVideoPlayer-armv7a:v8.4.0-release-jitpack'
    implementation 'com.github.CarGuo.GSYVideoPlayer:gsyVideoPlayer-armv5:v8.4.0-release-jitpack'
    implementation 'com.github.CarGuo.GSYVideoPlayer:gsyVideoPlayer-x86:v8.4.0-release-jitpack'
    implementation 'com.github.CarGuo.GSYVideoPlayer:gsyVideoPlayer-x64:v8.4.0-release-jitpack'
    

    B、添加java和你想要的so支持:

     implementation 'com.github.CarGuo.GSYVideoPlayer:gsyVideoPlayer-java:v8.4.0-release-jitpack'
    
     //是否需要ExoPlayer模式
     implementation 'com.github.CarGuo.GSYVideoPlayer:GSYVideoPlayer-exo2:v8.4.0-release-jitpack'
    
     //是否需要AliPlayer模式
     implementation 'com.github.CarGuo.GSYVideoPlayer:GSYVideoPlayer-aliplay:v8.4.0-release-jitpack'
    
     //根据你的需求ijk模式的so
     implementation 'com.github.CarGuo.GSYVideoPlayer:gsyVideoPlayer-arm64:v8.4.0-release-jitpack'
     implementation 'com.github.CarGuo.GSYVideoPlayer:gsyVideoPlayer-armv7a:v8.4.0-release-jitpack'
     implementation 'com.github.CarGuo.GSYVideoPlayer:gsyVideoPlayer-armv5:v8.4.0-release-jitpack'
     implementation 'com.github.CarGuo.GSYVideoPlayer:gsyVideoPlayer-x86:v8.4.0-release-jitpack'
     implementation 'com.github.CarGuo.GSYVideoPlayer:gsyVideoPlayer-x64:v8.4.0-release-jitpack'
    
    

    C、支持其他格式协议的(mpeg,rtsp, concat、crypto协议)

    A、B普通版本支持263/264/265等,对于mpeg编码会有声音无画面情况。 C 引入的so支持mpeg编码和其他补充协议,但是so包相对变大。

     implementation 'com.github.CarGuo.GSYVideoPlayer:gsyVideoPlayer-java:v8.4.0-release-jitpack'
    
     //是否需要ExoPlayer模式
     implementation 'com.github.CarGuo.GSYVideoPlayer:GSYVideoPlayer-exo2:v8.4.0-release-jitpack'
    
     //是否需要AliPlayer模式
     implementation 'com.github.CarGuo.GSYVideoPlayer:GSYVideoPlayer-aliplay:v8.4.0-release-jitpack'
    
     //更多ijk的编码支持
     implementation 'com.github.CarGuo.GSYVideoPlayer:gsyVideoPlayer-ex_so:v8.4.0-release-jitpack'
    
    

    --- 更多依赖方式请点击 -

    3、代码中的全局切换支持(更多请参看下方文档和demo)

    
    //EXOPlayer内核,支持格式更多
    PlayerFactory.setPlayManager(Exo2PlayerManager.class);
    //系统内核模式
    PlayerFactory.setPlayManager(SystemPlayerManager.class);
    //ijk内核,默认模式
    PlayerFactory.setPlayManager(IjkPlayerManager.class);
    //aliplay 内核,默认模式
    PlayerFactory.setPlayManager(AliPlayerManager.class);
    
    
    //exo缓存模式,支持m3u8,只支持exo
    CacheFactory.setCacheManager(ExoPlayerCacheManager.class);
    //代理缓存模式,支持所有模式,不支持m3u8等,默认
    CacheFactory.setCacheManager(ProxyCacheManager.class);
    
    
    
    //切换渲染模式
    GSYVideoType.setShowType(GSYVideoType.SCREEN_MATCH_FULL);
    //默认显示比例
    GSYVideoType.SCREEN_TYPE_DEFAULT = 0;
    //16:9
    GSYVideoType.SCREEN_TYPE_16_9 = 1;
    //4:3
    GSYVideoType.SCREEN_TYPE_4_3 = 2;
    //全屏裁减显示,为了显示正常 CoverImageView 建议使用FrameLayout作为父布局
    GSYVideoType.SCREEN_TYPE_FULL = 4;
    //全屏拉伸显示,使用这个属性时,surface_container建议使用FrameLayout
    GSYVideoType.SCREEN_MATCH_FULL = -4;
    /***
     * SCREEN_TYPE_CUSTOM 下自定义显示比例
     * @param screenScaleRatio  高宽比,如 16:9
     */
    public static void setScreenScaleRatio(float screenScaleRatio)
    
    
    //切换绘制模式
    GSYVideoType.setRenderType(GSYVideoType.SUFRACE);
    GSYVideoType.setRenderType(GSYVideoType.GLSURFACE);
    GSYVideoType.setRenderType(GSYVideoType.TEXTURE);
    
    
    //ijk关闭log
    IjkPlayerManager.setLogLevel(IjkMediaPlayer.IJK_LOG_SILENT);
    
    
    //exoplayer自定义MediaSource
    ExoSourceManager.setExoMediaSourceInterceptListener(new ExoMediaSourceInterceptListener() {
        @Override
        public MediaSource getMediaSource(String dataSource, boolean preview, boolean cacheEnable, boolean isLooping, File cacheDir) {
            //可自定义MediaSource
            return null;
        }
    });
    

    4、文档Wiki

    文档 传送门
    使用说明 --- 简单使用,快速上手文档
    建议阅读 --- 移动开发者必知的音视频基础知识1--- 移动开发者必知的音视频基础知识2
    项目解析说明 --- 项目解析说明、包含项目架构和解析
    接口文档入口 --- 使用说明、接口文档 - 入口
    问题集锦入口 --- 问题集锦 - 入口(大部分你遇到的问题都在这里解决)
    编码格式 --- IJK so文件配置格式说明
    编译自定义SO --- IJKPlayer编译自定义SO - 入口
    版本更新说明 --- 版本更新说明 - 入口
    compileSdk 太高 --- #3514

    参考:https://github.com/CarGuo/GSYVideoPlayer

    相关文章

      网友评论

          本文标题:Android GSYVideoPlayer接入

          本文链接:https://www.haomeiwen.com/subject/dspevdtx.html