2014-12-17 2 views
0

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

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

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

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

ответ

0

Вы можете потребительных

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 
} 
+0

В самом деле, вы код столкнулись с той же проблемой, как и я. Android не может декодировать видео, поэтому 'retriever.getFrameAtTime' просто возвращает' null' для этого видео. На самом деле, большая часть видео в моей руке не может получить растровое изображение. – roger

 Смежные вопросы

  • Нет связанных вопросов^_^