Extraindo thumbnail de preview de videos no android

Totalmente aleatório, mas deu um trabalho absurdo achar a solução e colocar para funcionar, então é melhor registrar aqui para não esquecer. 

Resumindo:  SurfaceView é velho e não funciona bem e o VideoView ainda é bugado. Olhando ainda no source code das aplicações(a Gallery2Avtivity) que vem no android elas estão desatualizados no repositório e não funcionam na ultimo SDK, tendo sua ultima atualização a meses atras.

Enfim, a solução foi a seguinte, pegar uma classe que consta nos source projeto mas não entrou no SDK, a MediaMetadataRetriever e coloca-la em seu projeto, e TEM que ser no pacote “android.media”, então fica assim a class android.media.MediaMetadataRetriever.

Para extrair o thumb do video, segue o trexo de código:

MediaMetadataRetriever retriever = new MediaMetadataRetriever();
try {
retriever.setMode(MediaMetadataRetriever.MODE_CAPTURE_FRAME_ONLY);
  retriever.setDataSource(context,uri); // URI do video 
Bitmap t = retriever.captureFrame();
thumb.setImageBitmap(t);
} catch(IllegalArgumentException ex) {
ex.printStackTrace();
} catch (RuntimeException ex) {
ex.printStackTrace();
} finally {
try {
retriever.release();
} catch (RuntimeException ex) { }
}

É isso ae, partiu. 

Deixe um Comentário

O seu endereço de email não será publicado Campos obrigatórios são marcados *

*

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>