前言:
在上傳視頻時(shí),一般會(huì)需要將視頻的首幀縮略圖上傳,作為視頻的封面。本文將實(shí)現(xiàn)根據(jù)視頻的url地址實(shí)現(xiàn)首幀所略圖的功能。
步驟一:獲取視頻的首幀圖并轉(zhuǎn)化成bitmap
/**
* 獲取視頻首幀圖并轉(zhuǎn)化為bitmap
* @param videoUrl
* @return
*/
private Bitmap voidToFirstBitmap(String videoUrl){
MediaMetadataRetriever metadataRetriever = new MediaMetadataRetriever();
metadataRetriever.setDataSource(videoUrl);
Bitmap bitmap = metadataRetriever.getFrameAtTime();
return bitmap;
}
步驟二:將首幀圖片的bitmap轉(zhuǎn)化成本地路徑(一般用于上傳到OSS或者本地加載)
/**
* 將bitmap轉(zhuǎn)化成本地圖片路徑
* @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();
}
結(jié)束。