Il MediaMetadataRetriever.getFrameAtTime() restituisce sempre gli stessi frame quando si chiama. avere uno sguardo il mio codiceCome ottenere il frame dal file video in 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;
}
}
Questo metodo restituisce sempre stessi telai
Questo è il comportamento che ci si può aspettare, come da documentazione: * "Questo metodo trova un frame rappresentativo vicino alla data posizione data considerando l'opzione data ** se possibile **, e la restituisce come una bitmap. contenente un frame video rappresentativo, che può essere nullo, se tale frame non può essere recuperato. "* –
@MH. grazie per la risposta, come posso ottenere i frame dal file video. Dai un'occhiata alla mia [domanda] (http://stackoverflow.com/questions/10071408/how-to-get-frames-of-video-file-in-android) –
Dopo 3 anni, sto ancora cercando di trovarlo difficile per la soluzione ... qualcuno sa della soluzione ??? –