El MediaMetadataRetriever.getFrameAtTime() siempre devuelve mismos marcos cuando vuelvas a llamar. echar un vistazo a mi códigoCómo conseguir el marco del archivo de vídeo en Android
private ArrayList<Bitmap> getFrames(String path){
try {
ArrayList<Bitmap> bArray = new ArrayList<Bitmap>();
bArray.clear();
MediaMetadataRetriever mRetriever = new MediaMetadataRetriever();
mRetriever.setDataSource(getDataSource(path));
for (int i = 3000; i <60000; i=i+5000) {
bArray.add(mRetriever.getFrameAtTime(i, MediaMetadataRetriever.OPTION_CLOSEST_SYNC));
}
return bArray;
} catch (Exception e) {
// TODO: handle exception
return null;
}
}
Este método devuelve siempre mismos marcos
Eso es un comportamiento que se puede esperar, según documentación: * "Este método encuentra un fotograma representativo cerca de la posición de tiempo determinado considerando la opción dada ** ** si es posible, y lo devuelve como un mapa de bits de devoluciones:. Un mapa de bits que contiene un fotograma de video representativo, que puede ser nulo, si dicho fotograma no se puede recuperar. "* –
@MH. Gracias por responder, ¿cómo puedo obtener los marcos del archivo de video. Echar un vistazo a mi [pregunta] (http://stackoverflow.com/questions/10071408/how-to-get-frames-of-video-file-in-android) –
Después de 3 años, todavía estoy tratando de encontrar dificultades para la solución ... ¿alguien sabe sobre la solución? –