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.