描述
最近在开发业务需求,有一个带图片的列表,点击列表进入详情,详情有视频,视频封面使用glide加载;
最近突然发现,进入详情后,再返回列表,刷新后,列表的图片都加载不出来了,之前视频封面可以正常加载出来,没出现这种问题,没改代码,排查后发现问题出在视频封面加载这里,去掉视频封面加载就正常,最终定位到是云端将视频格式从mp4转为m3u8格式了,使用glide加载m3u8格式的视频封面会导致其它图片加载不出来,加载视频封面代码,如下:
RequestOptions requestOptions = new RequestOptions()
.centerCrop()
.diskCacheStrategy(DiskCacheStrategy.ALL)
.error(res)
.frame(1 * 1000 * 1000)
.placeholder(res);
Glide.with(ActivityUtils.getTopActivity())
.load(url).apply(requestOptions)
.into(mCoverImage);
结论
使用glide加载m3u8格式的视频封面会导致其它用glide加载的图片加载不出来
具体原因没深入研究,跟m3u8格式的视频原理有很大关系,m3u8本身是一个文本文件,俗称播放列表文件,里面的内容就是一段段被播放的音视频文件路径或网址,使用记事本就可以打开查看里面的内容,如下:
glide github issues只有一条跟m3u8格式视频相关提问,但没有结论