android gif播放慢了,Glide加载Gif动画播放速度过慢的问题

在使用Glide v3.7加载Gif时遇到播放速度慢的问题,原因是Glide将小于30毫秒的帧延迟设为了100毫秒。通过反射修改GifDecoder以优化播放速度,但这不是一个灵活的解决方案。期待更好的解决策略。
摘要由CSDN通过智能技术生成

Glide版本3.7 目前不清楚4及以上版本是否有同样的问题

今天使用glide播放gif发现播放的速度很慢,在ios或者其他地方都没有这种问题。

跟踪源码查找发现,与播放速度相关的是每一帧的延时时间:

private void loadNextFrame() {

if (!isRunning || isLoadPending) {

return;

}

isLoadPending = true;

gifDecoder.advance();

long targetTime = SystemClock.uptimeMillis() + gifDecoder.getNextDelay();//获取一帧的延时时间

DelayTarget next = new DelayTarget(handler, gifDecoder.getCurrentFrameIndex(), targetTime);

requestBuilder

.signature(new FrameSignature())

.into(next);

}

public int getDelay(int n) {

int delay = -1;

if ((n >= 0) && (n < header.frameCount)) {

delay = header.frames.get(n).delay;//从解析出的gifheader中获取此帧延时时间

}

return delay;

}

而在解析gif的过程中:

int delayInHun

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值