Я пытаюсь получить последний кадр видео mp4 с помощью MediaMetadataRetriever, но он всегда возвращает первый кадр для коротких видео (например, 3-секундных длинных видео), он отлично работает для длинных видео. FFmpegMediaMetadataRetriever также дает тот же результат.
MediaMetadataRetriever retriever = new MediaMetadataRetriever();
retriever.setDataSource(video);
String time = retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION);
Bitmap frameAtTime = retriever.getFrameAtTime(Long.parseLong(time)*1000, MediaMetadataRetriever.OPTION_CLOSEST);
mImage.setImageBitmap(frameAtTime);
Мы ценим любые предложения.
int frame = retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_VIDEO_FRAME_COUNT)
для получения финального кадра видео, а затем использоватьretriever.getFrameAtIndex(frame-1)
для получения кадра? Также всегда следует проверять, что extractMetadata не возвращает значение null. - person charliebeckwith   schedule 29.04.2019OPTION_NEXT_SYNC
? - person charliebeckwith   schedule 29.04.2019