我正在使用Glide从视频加载缩略图,但它似乎不适用于我的应用。由于某种原因,ImageView只是空的。
Glide.with(context)
.load(url)
.asBitmap()
.thumbnail(0.1f)
.diskCacheStrategy(DiskCacheStrategy.ALL)
.into(target);
我添加了一个监听器,所以我可以找出错误但抛出的异常为空。
我尝试使用相同网址的ThumbnailUtils,因为我认为它可能有问题,但缩略图加载正常。
有没有经历过相同的人?我正在使用Nexus 7(6.0.1)
答案 0 :(得分:7)
即使我偶然发现同样的情况。不知何故,除非使用本地文件路径创建文件实例,否则它不会加载图像。所以为了使它工作我使用它如下
Glide.with(mContext).load(Uri.fromFile(new File(path)).into(icon);
在文档中,他们使用相同的方法。您可以在这里参考:Glide - Videos
除此之外,我还注意到使用缓存的异常行为。如果您使用缓存策略为 DiskCacheStrategy.ALL或DiskCacheStrategy.SOURCE ,则它不会加载缩略图,但如果我使用 DiskCacheStrategy.RESULT 则可以正常工作。希望它有所帮助
答案 1 :(得分:2)
您可以使用覆盖,这肯定有效:
Glide.with(context)
.load(url)
.crossFade()
.override(width, height)
.into(imageView);
答案 2 :(得分:1)
正如Glide文档中所述,此功能仅适用于设备上本地存储的视频。
此外,您应该使用/storage/emulated/0/Pictures/example_video.mp4
之类的路径。在此路径之前添加file:///
也无法解决问题。
您可以在此处找到更多信息:https://futurestud.io/blog/glide-displaying-gifs-and-videos
干杯!
答案 3 :(得分:0)
SEGMENT CREATION DEFERRED
尝试使用此代码
答案 4 :(得分:0)
@BindingAdapter("videoThumbnailFromUrl")
fun setImageFromVideoUrl(imageView: ImageView, url: String) {
val thumb = 10000L
val options = RequestOptions().frame(thumb)
Glide.with(imageView.context).load(url).apply(options).placeholder(R.drawable.place_holder).into(imageView)
}