当前位置:   article > 正文

GSYVideoPlayer - 视频播放器(IJKplayer、ExoPlayer、MediaPlayer)

gsyvideoplayer

项目地址

GitHub - CarGuo/GSYVideoPlayer: 视频播放器(IJKplayer、ExoPlayer、MediaPlayer),HTTPS,支持弹幕,外挂字幕,支持滤镜、水印、gif截图,片头广告、中间广告,多个同时播放,支持基本的拖动,声音、亮度调节,支持边播边缓存,支持视频自带rotation的旋转(90,270之类),重力旋转与手动旋转的同步支持,支持列表播放 ,列表全屏动画,视频加载速度,列表小窗口支持拖动,动画效果,调整比例,多分辨率切换,支持切换播放器,进度条小窗口预览,列表切换详情页面无缝播放,rtsp、concat、mpeg。

一、使用依赖

--- 版本更新说明 ---

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

First、在project下的build.gradle添加
  1. allprojects {
  2. repositories {
  3. ...
  4. maven { url 'https://jitpack.io' }
  5. maven { url "https://maven.aliyun.com/repository/public" }
  6. }
  7. }

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

A、直接引入
  1. //完整版引入
  2. implementation 'com.github.CarGuo.GSYVideoPlayer:GSYVideoPlayer:v8.5.0-release-jitpack'
  3. //是否需要AliPlayer模式
  4. implementation 'com.github.CarGuo.GSYVideoPlayer:GSYVideoPlayer-aliplay:v8.5.0-release-jitpack'
B、添加java和你想要的so支持:
  1. implementation 'com.github.CarGuo.GSYVideoPlayer:gsyVideoPlayer-java:v8.5.0-release-jitpack'
  2. //是否需要ExoPlayer模式
  3. implementation 'com.github.CarGuo.GSYVideoPlayer:GSYVideoPlayer-exo2:v8.5.0-release-jitpack'
  4. //是否需要AliPlayer模式
  5. implementation 'com.github.CarGuo.GSYVideoPlayer:GSYVideoPlayer-aliplay:v8.5.0-release-jitpack'
  6. //根据你的需求ijk模式的so
  7. implementation 'com.github.CarGuo.GSYVideoPlayer:gsyVideoPlayer-arm64:v8.5.0-release-jitpack'
  8. implementation 'com.github.CarGuo.GSYVideoPlayer:gsyVideoPlayer-armv7a:v8.5.0-release-jitpack'
  9. implementation 'com.github.CarGuo.GSYVideoPlayer:gsyVideoPlayer-armv5:v8.5.0-release-jitpack'
  10. implementation 'com.github.CarGuo.GSYVideoPlayer:gsyVideoPlayer-x86:v8.5.0-release-jitpack'
  11. implementation 'com.github.CarGuo.GSYVideoPlayer:gsyVideoPlayer-x64:v8.5.0-release-jitpack'
C、支持其他格式协议的(mpeg,rtsp, concat、crypto协议)

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

  1. implementation 'com.github.CarGuo.GSYVideoPlayer:gsyVideoPlayer-java:v8.5.0-release-jitpack'
  2. //是否需要ExoPlayer模式
  3. implementation 'com.github.CarGuo.GSYVideoPlayer:GSYVideoPlayer-exo2:v8.5.0-release-jitpack'
  4. //是否需要AliPlayer模式
  5. implementation 'com.github.CarGuo.GSYVideoPlayer:GSYVideoPlayer-aliplay:v8.5.0-release-jitpack'
  6. //更多ijk的编码支持
  7. implementation 'com.github.CarGuo.GSYVideoPlayer:gsyVideoPlayer-ex_so:v8.5.0-release-jitpack'
代码中的全局切换支持(更多请参看下方文档和demo)
  1. //EXOPlayer内核,支持格式更多
  2. PlayerFactory.setPlayManager(Exo2PlayerManager.class);
  3. //系统内核模式
  4. PlayerFactory.setPlayManager(SystemPlayerManager.class);
  5. //ijk内核,默认模式
  6. PlayerFactory.setPlayManager(IjkPlayerManager.class);
  7. //aliplay 内核,默认模式
  8. PlayerFactory.setPlayManager(AliPlayerManager.class);
  9. //exo缓存模式,支持m3u8,只支持exo
  10. CacheFactory.setCacheManager(ExoPlayerCacheManager.class);
  11. //代理缓存模式,支持所有模式,不支持m3u8等,默认
  12. CacheFactory.setCacheManager(ProxyCacheManager.class);
  13. //切换渲染模式
  14. GSYVideoType.setShowType(GSYVideoType.SCREEN_MATCH_FULL);
  15. //默认显示比例
  16. GSYVideoType.SCREEN_TYPE_DEFAULT = 0;
  17. //16:9
  18. GSYVideoType.SCREEN_TYPE_16_9 = 1;
  19. //4:3
  20. GSYVideoType.SCREEN_TYPE_4_3 = 2;
  21. //全屏裁减显示,为了显示正常 CoverImageView 建议使用FrameLayout作为父布局
  22. GSYVideoType.SCREEN_TYPE_FULL = 4;
  23. //全屏拉伸显示,使用这个属性时,surface_container建议使用FrameLayout
  24. GSYVideoType.SCREEN_MATCH_FULL = -4;
  25. /***
  26. * SCREEN_TYPE_CUSTOM 下自定义显示比例
  27. * @param screenScaleRatio 高宽比,如 16:9
  28. */
  29. public static void setScreenScaleRatio(float screenScaleRatio)
  30. //切换绘制模式
  31. GSYVideoType.setRenderType(GSYVideoType.SUFRACE);
  32. GSYVideoType.setRenderType(GSYVideoType.GLSURFACE);
  33. GSYVideoType.setRenderType(GSYVideoType.TEXTURE);
  34. //ijk关闭log
  35. IjkPlayerManager.setLogLevel(IjkMediaPlayer.IJK_LOG_SILENT);
  36. //exoplayer自定义MediaSource
  37. ExoSourceManager.setExoMediaSourceInterceptListener(new ExoMediaSourceInterceptListener() {
  38. @Override
  39. public MediaSource getMediaSource(String dataSource, boolean preview, boolean cacheEnable, boolean isLooping, File cacheDir) {
  40. //可自定义MediaSource
  41. return null;
  42. }
  43. });

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

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

闽ICP备14008679号