Я пытаюсь создать миниатюру из видео, прежде чем загружать его в Firebase. Я перепробовал все решения, которые получил в Интернете, но ни одно из них не сработало. Я не получаю никакой ошибки, и временный файл не создан. Я предоставил код ниже, пожалуйста, помогите мне создать миниатюры из видео.
public void videotempfilecreate(){
Bitmap vidBitmap = MediaStore.Video.Thumbnails.getThumbnail(personalChat.this.getContentResolver(), ContentUris.parseId(imagefile),MediaStore.Video.Thumbnails.MICRO_KIND,
(BitmapFactory.Options) null);
File videotemppath = new File(Environment.getExternalStorageDirectory()+"/Alpha/Video/temp/");
FileOutputStream out = null;
if(!videotemppath.exists()){
videotemppath.mkdirs();
File videotemp = new File(videotemppath,System.currentTimeMillis()+".png");
try {
out = new FileOutputStream(videotemp);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
vidBitmap.compress(Bitmap.CompressFormat.PNG,100,out);
Toast.makeText(personalChat.this,videotemp.getPath().toString(),Toast.LENGTH_SHORT).show();
}
}
в приведенном выше коде imagefile - это Uri imagefile = data.getdata ();
Еще одна вещь, которую я пытаюсь извлечь кадр из видео и сохранить его, но это также несработало
public static Bitmap retriveVideoFrameFromVideo(String p_videoPath)
throws Throwable
{
Bitmap m_bitmap = null;
MediaMetadataRetriever m_mediaMetadataRetriever = null;
try
{
m_mediaMetadataRetriever = new MediaMetadataRetriever();
m_mediaMetadataRetriever.setDataSource(p_videoPath);
m_bitmap = m_mediaMetadataRetriever.getFrameAtTime();
}
catch (Exception m_e)
{
throw new Throwable(
"Exception in retriveVideoFrameFromVideo(String p_videoPath)"
+ m_e.getMessage());
}
finally
{
if (m_mediaMetadataRetriever != null)
{
m_mediaMetadataRetriever.release();
}
}
return m_bitmap;
}
не получено никакой ошибки, но временный файл не создан.