VideoBitmapDecoder.java revision fcd787c911d5fbca2a34ff0963d4665543a03275
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.FileDescriptor; 9import java.io.IOException; 10 11public class VideoBitmapDecoder implements BitmapDecoder<ParcelFileDescriptor> { 12 private static final String ID = "VideoBitmapDecoder"; 13 @Override 14 public Bitmap decode(ParcelFileDescriptor resource, BitmapPool bitmapPool, int outWidth, int outHeight) 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