Как я могу получить миниатюру видео в Android, если Android не может декодировать видео?

Я успешно получил миниатюру для видео с таким кодом:

Bitmap bitmap = ThumbnailUtils.createVideoThumbnail(mediaFile.getAbsolutePath(), MediaStore.Video.Thumbnails.MINI_KIND);

Но этот код может получить растровое изображение только для нескольких видео, потому что Android не может декодировать большую часть видео, поскольку декодер видео для Android слаб.

если я просто хочу получить миниатюру для видео, есть ли у меня хорошее решение. Если мне не нужно использовать ndk намного лучше! Но если решение ndk намного эффективнее или проще, я думаю, что это тоже нормально.


person roger    schedule 17.12.2014    source источник


Ответы (1)


Ты можешь использовать-

  MediaMetadataRetriever retriever = new MediaMetadataRetriever();
try {
   retriever.setDataSource(filePath);
   //here 5 means frame at the 5th sec.
    bitmap = retriever.getFrameAtTime(5);
    } catch (Exception ex) {
   // Assume this is a corrupt video file
}
person Tarun Varshney    schedule 17.12.2014
comment
На самом деле, ваш код сталкивается с той же проблемой, что и я. Android не может декодировать видео, поэтому retriever.getFrameAtTime просто верните null для этого видео. На самом деле большую часть видео у меня в руках растровое не получается. - person roger; 17.12.2014