owl's blog

Android Rn 获取视频预览图

2019.06.17

需求:在React-native上获取视频的地址将视频获取第一帧生成预览图

默认已经能够获取视频的地址了,这时传入一个函数进行处理

uri为视频的地址

 Uri mediaPath = Uri.parse(uri);
 MediaMetadataRetriever media = new MediaMetadataRetriever();
 //将获取到的视频作为数据源
 media.setDataSource(mContext, mediaPath);
//获取视频的第一帧
 Bitmap bitmap = media.getFrameAtTime(-1, OPTION_CLOSEST_SYNC);
 String fileName =getFileName(uri);
 String fileDir = mContext.getApplicationContext().getFilesDir()
                    .getAbsolutePath()
                    + "/videoPostr/";

getFileName是对获取到的视频地址进行处理,拍摄完成之后会有个地址,截取他的地址作为我们保存本地图片的名字

将图片存入本地

File  filePic = new File(fileDir+fileName+".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();  promise.resolve("file://"+filePic.getAbsolutePath());

返回图片地址就可以了。