安卓 获取视频的第一帧图片

不解释了,直接上车!

/**
     * 获取视频第一帧图片
     */
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;
    }

猜你喜欢

转载自blog.csdn.net/fengyeNom1/article/details/111655466