前言:
在上传视频时,一般会需要将视频的首帧缩略图上传,作为视频的封面。本文将实现根据视频的url地址实现首帧所略图的功能。
步骤一:获取视频的首帧图并转化成bitmap
/**
* 获取视频首帧图并转化为bitmap
* @param videoUrl
* @return
*/
private Bitmap voidToFirstBitmap(String videoUrl){
MediaMetadataRetriever metadataRetriever = new MediaMetadataRetriever();
metadataRetriever.setDataSource(videoUrl);
Bitmap bitmap = metadataRetriever.getFrameAtTime();
return bitmap;
}
步骤二:将首帧图片的bitmap转化成本地路径(一般用于上传到OSS或者本地加载)
/**
* 将bitmap转化成本地图片路径
* @param context
* @param bitmap
* @return
*/
private static String bitmapToStringPath(Context context, Bitmap bitmap){
String savePath;
File filePic;
if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
savePath = "/sdcard/dskgxt/pic/";
}else {
savePath = context.getApplicationContext().getFilesDir().getAbsolutePath() + "/dskgxt/pic/";
}
try {
filePic = new File(savePath + UUID.randomUUID().toString() + ".jpg");
if (!filePic.exists()) {
filePic.getParentFile().mkdirs();
filePic.createNewFile();
}
FileOutputStream fos = new FileOutputStream(filePic);
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, fos);
fos.flush();
fos.close();
}catch(IOException e){
e.printStackTrace();
return null;
}
return filePic.getAbsolutePath();
}
结束。