8K播放网络全终端播放器H5播放器网页直播/点播播放器EasyPlayer-Android Glide设置默认图片后失效问题解决方案

EasyPlayer-Android播放器是一款可针对RTSP、RTMP、RTSP&RTMP协议进行过优化的流媒体播放器,其中我们引以为傲的两个技术优势就是起播速度快和播放延迟低。最近我们遇到一些需求,其对播放画面要求非常苛刻,于是我们再把代码捡起来,针对之前的播放策略进行再优化,果然又发现一些可以更改和调优的地方,于是又对性能进行了一次压榨和优化。

为了使后台线程加载和处理媒体资源更容易,Glide新增了两个API:
downloadOnly(int, int)
into(int, int)

Glide的downloadOnly(int, int)API允许你下载图片的字节流到磁盘中,以便你之后用到。你可以在UI线程中异步地使用downloadOnly()或者在后台线程中同步使用,但要注意,异步API需要一个Target作为参数,而同步API需要整数的宽高值。

Android Glide设置默认图片后失效问题

提出问题

Glide设置默认图片后setImageBitmap,setImageResource失效了,这是什么原因造成的?当我们碰见这样的问题后又该如何处理?

分析问题

Glide内部有加载失败重试机制,当第一次加载失败,重试机制就会启动,这时imageView.setImageResource(R.drawable.my_image)也同步执行了,但是当重试机制执行完毕后,Glide发现图片最终还是加载失败,所以会将error中设置的图片又添加到imageView上去,所以并不是imageView.setImageResource(R.drawable.my_image)这句代码失效了,而是Glide又重新设置了一遍。

解决问题

有两种方法可以解决图片失效的问题:
1.我们可以使用Glide.with(this).clear(imageView)关闭失败重试,此时Glide将不会重新设置代码;
2.第二种就是使用Glide加载本地图片,不使用原生Api:

Glide.with(imageView).load(R.drawable.my_image).into(imageView)

以上两种都可解决此问题,我们可以根据自己的需要来选择使用哪种方法解决问题。

发布了189 篇原创文章 · 获赞 7 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/TsingSee/article/details/103350231