VideoBitmapDecoder.java revision 76fbad3dbce72240e9f5b82c826e3229c1176fb6
1package com.bumptech.glide.resize.load; 2 3import android.graphics.Bitmap; 4import android.media.MediaMetadataRetriever; 5import android.os.ParcelFileDescriptor; 6import com.bumptech.glide.resize.bitmap_recycle.BitmapPool; 7 8import java.io.IOException; 9 10public class VideoBitmapDecoder implements BitmapDecoder<ParcelFileDescriptor> { 11 private static final String ID = "VideoBitmapDecoder"; 12 @Override 13 public Bitmap decode(ParcelFileDescriptor resource, BitmapPool bitmapPool, int outWidth, int outHeight, 14 DecodeFormat decodeFormat) 15 throws IOException { 16 MediaMetadataRetriever mediaMetadataRetriever = new MediaMetadataRetriever(); 17 mediaMetadataRetriever.setDataSource(resource.getFileDescriptor()); 18 Bitmap result = mediaMetadataRetriever.getFrameAtTime(); 19 mediaMetadataRetriever.release(); 20 resource.close(); 21 return result; 22 } 23 24 @Override 25 public String getId() { 26 return ID; 27 } 28} 29