9

I'm using Glide to load thumbnail from videos but it doesn't seem to be working on my app. The ImageView is just empty for some reason.

Glide.with(context)
            .load(url)
            .asBitmap()
            .thumbnail(0.1f)
            .diskCacheStrategy(DiskCacheStrategy.ALL)
            .into(target);

I added a listener, so I can figure out what is wrong but the Exception thrown is null.

I tried using ThumbnailUtils using the same url because I thought there might be something wrong with it but the thumbnail loads fine.

Anyone experiencing the same? I'm using a Nexus 7 (6.0.1)

kishidp
  • 1,918
  • 6
  • 23
  • 29

5 Answers5

7

Even i stumbled upon the same situation. Somehow from the uri its not loading the image unless create a file instance using local file path. So to make it work i used it like below

Glide.with(mContext).load(Uri.fromFile(new File(path)).into(icon);

In the doc they are using the same approach. You can refer here : Glide - Videos

Apart from that i also noticed unusual behaviour of using the cache. If you are using cache strategy as DiskCacheStrategy.ALL or DiskCacheStrategy.SOURCE it doesn't load the thumbnail but if i am using DiskCacheStrategy.RESULT it works. Hope it helps

Gautam
  • 3,252
  • 3
  • 23
  • 32
2

As explained in Glide documentation, this feature is only available for videos stored locally on the device.

Also, you should use a path like /storage/emulated/0/Pictures/example_video.mp4. Adding file:/// before this path won't work out either.

You can find more informations here : https://futurestud.io/blog/glide-displaying-gifs-and-videos

Cheers !

Edouard Brèthes
  • 1,142
  • 11
  • 25
  • yup. I am loading thumbnail from videos in the device SD card, unfortunately it doesn't load at all – kishidp Mar 11 '16 at 03:55
  • As far as i'm concerned, i don't use the .asBitmap() option. But i guess you already tried everything on that ... Is it linked to the Android version maybe ? – Edouard Brèthes Mar 11 '16 at 12:53
2

You can use override, which surely works:

Glide.with(context)
         .load(url)
         .crossFade()
         .override(width, height)
         .into(imageView);
box
  • 4,450
  • 2
  • 38
  • 38
0
Glide.with(mcontext)
                .applyDefaultRequestOptions(RequestOptions.centerCropTransform()
                        .diskCacheStrategy(DiskCacheStrategy.RESOURCE))
                .load(videourl)
                .into(thumbnailimg);

Try using this code

Pooja Pachchigar
  • 217
  • 1
  • 3
  • 12
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)
}
Mahmudxon
  • 25
  • 3