Welcome to Jiawei Network Technology!

礼物内存过大导致app闪退解决方案

2021-12-06 18:51:59

礼物内存过大导致app闪退解决方案

1. Svga文件的2个参数   文件大小和内存大小

文件大小,文件存在本地的大小。一般直播礼物都会从服务器端下载,文件大小过大会加载过慢,浪费流量,增加运营费用。

内存大小,直播礼物播放时占用手机空间的运行内存大小。内存大小过大,容易引起程序卡顿,甚至崩溃。

2. 为什么有的svga礼物内存很大?

制作特效的时候使用的素材多、画面效果复杂用到序列帧制作,比如三维动效内存都比较大,以及特效时间比较长。

3. 内存很大有什么解决方案?

(1)礼物优化

尽量不要使用序列帧直接合成动画,但是由于svga工具的局限性,只支持位移/旋转/缩放和单一蒙版和个别形状层,AE里的大部分特效都不支持,中小礼物适合使用这种svga动画,大型礼物用到特效比较多,部分特效只能通过序列帧转换去合成。

必须使用序列帧的,可以采用抽帧,压缩图片大小的方法降低内存。抽帧,要配合帧率,否则会卡顿;压缩图片大小,动效画质会降低,这个没有办法。压缩到自己可以接受的画质即可。

(2)程序优化

Svga文件内存官方推荐8Mb以内,内存过大会导致app闪退,内存越小的手机播放大内存svga礼物越容易出现崩溃情况,经实测,iphone6以上机型播放50Mb内存以内的礼物都不易引起崩溃。那么50Mb以上大内存礼物如何再app里播放呢,我们推荐播放大内存礼物使用app内嵌webview方式通过网页进行播放,这样播放大内存礼物不会引起app内存升高而导致崩溃。

网页播放代码截图:

ios通过webview网页播放代码截图:




3)大内存礼物使用腾讯vap格式(或者双通道透明MP4)去播放,svga只用来播放中小礼物。mp4视频方案无论从效果、大小与解码性能上都是最优的,但H264的里存的是YUV数据,并没有带透明通道。VAP方案基于mp4,解决视频里透明度的问题,这样就能兼具更好的压缩效率,与更好的解码性能。MP4支持所有的特效效果,不用考虑内存问题。头部直播平台:抖音、快手、B站,以及腾讯旗下的直播平台,现在用的都是mp4格式。

Taobao store