пробовали ли вы использовать приведенный ниже API,
MediaMetadataRetriever :: getFrameAtTime (), см. Android-разработчик-страница-MediaMetadataRetriever
пример кода:
MediaMetadataRetriever retriever = new MediaMetadataRetriever();
try {
retriever.setDataSource(filePath);
bitmap = retriever.getFrameAtTime(0, MediaMetadataRetriever.OPTION_CLOSEST);
} catch (IllegalArgumentException ex) {
// Assume this is a corrupt video file
} catch (RuntimeException ex) {
// Assume this is a corrupt video file. }
Вышеупомянутый кусок кода работал для меня! но мой файл доступен в общих папках.