不解释了,直接上车!
/**
* 获取视频第一帧图片
*/
private void getFirstIMG(String path) {
try {
//实例化 MediaMetadataRetriever对象
MediaMetadataRetriever mmr = new MediaMetadataRetriever();
mmr.setDataSource(path);//设置数据源为该文件对象指定的绝对路径
Bitmap bitmap = mmr.getFrameAtTime();//获得视频第一帧的Bitmap
if (bitmap != null) {
mThumbArt = Base64Util.bitmapToFile(bitmap).getPath();
}
} catch (Exception e) {
}
}
其中里面有一个方法,是我自己写的,也放出来
/**
* Bitmap 转 文件
*/
public static File bitmapToFile(Bitmap bitmap) {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
//第二个参数是压缩比重,图片存储在磁盘上的大小会根据这个值变化。值越小存储在磁盘的图片文件越小,
bitmap.compress(Bitmap.CompressFormat.JPEG, 50, baos);
File fileDir = new File(Base64Util.mAbsolutePath);
if (!fileDir.exists()) {
fileDir.mkdirs();
}
File file = new File(mAbsolutePath, System.currentTimeMillis() + "_Mzz.jpg");
try {
FileOutputStream fos = new FileOutputStream(file);
InputStream is = new ByteArrayInputStream(baos.toByteArray());
int x = 0;
byte[] b = new byte[1024 * 100];
while ((x = is.read(b)) != -1) {
fos.write(b, 0, x);
}
fos.close();
} catch (Exception e) {
Log_Ma.e("ss", e.toString());
e.printStackTrace();
}
return file;
}