获取视频的第一帧

public static Bitmap getVideoFirstFrame(Context context, Uri uri) {
Bitmap bitmap = null;
String className = "android.media.MediaMetadataRetriever";
Object objectMediaMetadataRetriever = null;
Method release = null;
try {
//反射获取视频第一帧
objectMediaMetadataRetriever = Class.forName(className).newInstance();
Method setDataSourceMethod = Class.forName(className).getMethod("setDataSource", Context.class, Uri.class);
setDataSourceMethod.invoke(objectMediaMetadataRetriever, context, uri);
Method getFrameAtTimeMethod = Class.forName(className).getMethod("getFrameAtTime");
bitmap = (Bitmap) getFrameAtTimeMethod.invoke(objectMediaMetadataRetriever);
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (release != null) {
release.invoke(objectMediaMetadataRetriever);
}
} catch (Exception e) {
e.printStackTrace();
}
}
return bitmap;
}

原文地址:https://www.cnblogs.com/xxwn/p/4615573.html