1.引用第三方库
implementation 'com.github.wseemann:FFmpegMediaMetadataRetriever:1.0.14'
2.实现
/**
* 获取本地视频缩略图
*
* @param filePath
* @return
*/
public static Bitmap getVideoThumbnail(String filePath) {
Log.d(TAG, "getVideoThumbnail:" + filePath);
Bitmap b = null;
//FFmpegMediaMetadataRetriever
FFmpegMediaMetadataRetriever retriever = new FFmpegMediaMetadataRetriever();
File file = new File(filePath);
try {
retriever.setDataSource(file.getPath());
b = retriever.getFrameAtTime(1000 * 1000, MediaMetadataRetriever.OPTION_CLOSEST_SYNC);//微秒
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (RuntimeException e) {
e.printStackTrace();
} finally {
try {
retriever.release();
} catch (RuntimeException e) {
e.printStackTrace();
}
}
return b;
}
/**
* Bitmap保存成File
*
* @param bitmap input bitmap
* @param name output file's name
* @return String output file's path
*/
public static String bitmap2File(Bitmap bitmap, String name) {
File f = new File(Api.UPanFilePathPrefix + "/Bus/video/" + name + ".jpg");
if (f.exists()) f.delete();
FileOutputStream fOut = null;
try {
fOut = new FileOutputStream(f);
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, fOut);
fOut.flush();
fOut.close();
} catch (IOException e) {
return null;
}
return f.getAbsolutePath();
}