进阶!GSYVideoPlayer仿抖音视频列表,左右VP+Fragment+RV

进阶!GSYVideoPlayer仿抖音视频列表,左右VP+Fragment+RV。

本文介绍一款强大的播放器 GSYVideoPlayer
这个播放器源码在Git链接 GSYVideoPlayer传送门

可能有一部分人会说,Bilibili的IJKPlayer不是更好吗,为啥要用这个呢?在这咱们不转牛角尖哈,个人觉得这GSYVideoPlayer比IJK很舒服更好。仅个人观点哈,它不仅可以支持自由切换IJKPlayer、Media3(EXOPlayer)、MediaPlayer、AliPlayer等内核,还能自定义内核!!

如今抖音这样的视频APP有挺多的,针对这个技术在这做一个简单DEMO讲解

准备工作
在build.gralde中导入GsyVideoPlayer

//是否需要ExoPlayer模式
    implementation 'com.shuyu:GSYVideoPlayer-exo2:8.1.2'
    //更多ijk的编码支持
    implementation 'com.shuyu:gsyVideoPlayer-ex_so:8.1.2'

    implementation 'com.shuyu:gsyVideoPlayer-java:8.1.2'
  • 视频列表
    首先当然有限考虑可高度自定义的RecyclerView,毋庸置疑,准备好进度条,可以用ProgressBar即可。把播放器放进来,这里要重点说一下,开发者可以继承GSYVideoPlayer高度自定义它的UI布局和事件,比如我这里要去做亮度、音量、加载动画等自定义直接继承就可以去修改了。在这里插入图片描述
    布局也是可以自定义的,如下,在这里返回自己自定义的布局就可以了。
    在这里插入图片描述
    播放器的用法
    给播放器设置资源URL:
setUp

在这里插入图片描述
在这里插入图片描述
几个重要的API
播放视频:startPlayLogic
暂停播放:onVideoPause
继续播放:onVideoResume
获取视频总时长:getDuration
获取当前播放的时长:getCurrentPositionWhenPlaying
释放资源:release

非常方便好用!

  • VP+Fragment列表视频

这里要注意的是VP左右翻页视频播放器的处理,要掌握的思路是,当触发翻页时,当前的播放器需要暂停或者停止释放资源(这个根据产品需求来),然后播放另一页当前需要播放的那个播放器,掌握好这个思路实现就不那么难了。下面一点会进行贴图介绍。

  • VP+RV+Fragment
    这里介绍一下如何获取当前播放的播放器呢,基于RV+Adapter实现,可以通过LayoutManager去获取到,如下:
    在这里插入图片描述
    小编在RV滑动监听,默认首次加载Fragment的时候取第一个播放器标记为默认播放器,当出现滑动的时候,当滑动停止取当前第一个完全可见的View去Find当前的播放器。在这有一个细节,需要去判断是否为空,如果不为空应该先停止上一个播放器,再对当前播放的View进行赋值标记为当前播放的View。
    当出现翻页的时候VP的监听处进行处理:
    在这里插入图片描述
    如上,小编在各Fragment中已经提前写好了暂停和播放的方法,在这直接调用即可。当然也可以在父类Fragment同一写好,这个可自己喜欢怎么来就怎么来哈。

另外在这里介绍一下如何切换内核哈:
在这里插入图片描述还有很多参数可以设置,小编这里注释掉了,暂时用不到,但是之前做webrtc通话的时候使用到了。详细可以看看Git哈,文档都有,支持小视频也支持直播流。

小编亲测,Rstp和M3U8都支持

这里不做过多讲解,还有什么问题可以私信我哈。本篇就到这里结束了。
对了 上一个Demo效果图:
在这里插入图片描述
在这里插入图片描述

DEMO传送门

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值