• 8K播放网络全终端播放器H5播放器网页直播/点播播放器EasyPlayerAndroid 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)
    

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

  • 相关阅读:
    java 字符串split有很多坑,使用时请小心!!
    Java并发编程:线程池的使用
    java自带线程池和队列详细讲解
    merge into的用法
    Oracle中如何使用REGEXP_SUBSTR函数
    oracle分组统计某列逗号隔开数据
    oracle一列中的数据有多个手机号码用逗号隔开,我如何分别取出来?
    css box-shadow使用---转
    201706问题记录
    201705问题记录
  • 原文地址:https://www.cnblogs.com/TSINGSEE/p/11971109.html
Copyright © 2020-2023  润新知