如上图所示,左侧是普通礼物,右侧是豪华礼物。下面重点说明如何实现豪华礼物。
云豹直播APP源码中豪华礼物有gif和svga两种格式,全部是通过网络动态加载的,而不是硬编码到app中,这样可以有效减小app的体积。
当用户给主播发送礼物时候,先请求一个后端的接口,给用户扣除金币,给主播增加映票数,然后生成一个token,返回给客户端。这个token用来标识一次送礼物的行为,仅一次有效。当客户端接收到http响应,从响应数据中获取这个token,然后调用socket通信的方法,把这个token发送给socket服务器,然后socket广播给所有当前直播间的用户。当每个用户收到这个socket消息后,进行json解析,获取里面的数据,得到送礼物的人的id,昵称,礼物的id,名称,种类(普通还是豪华礼物),下载地址等数据。
如果是豪华礼物,先去检查本地磁盘中有没有缓存改礼物的资源文件,如果没有,先下载。下载完成后,根据礼物的类型,是gif礼物还是svga礼物,调用不同的方法进行展示。
对于gif礼物,我们使用的是 koral–/android-gif-drawable 这个库进行播放。
————————————————
版权声明:本文为CSDN博主「云豹科技官方」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/yun_bao_2144899870/article/details/99428803