Ich habe es bereits geschafft, ein Thumbnail aus meinem Video zu erstellen. Der Code sieht wie folgt aus:Android Erstelle Video Thumbnail zu einer bestimmten Zeit
videoGalleryThumbnails.add(ThumbnailUtils.extractThumbnail(ThumbnailUtils.createVideoThumbnail(
videoFile.getAbsolutePath(), MediaStore.Images.Thumbnails.MINI_KIND), 500, 200));
Aber die erzeugte Thumbnail in einem wirklich schlechten Zeit. Es ist genau dann, wenn das Video schwarz ist. Jetzt habe ich kein komplett schwarzes Thumbnail mehr.
Wie kann ich ein Thumbnail meines Videos zu einer bestimmten Zeit aufnehmen? Z.B. um 00:31 oder um 01:44?
Oder ist es nicht möglich?
Ich habe auch versucht, MediaMetadataRetriever zu verwenden, aber ich bekomme nur ein weißes Bild. Code wie dies
File tempVideoList[] = (Environment.getExternalStoragePublicDirectory(PATH_VIDEO_GALLERY))
.listFiles();
MediaMetadataRetriever retriever = new MediaMetadataRetriever();
Bitmap myBitmap=null;
for (File videoFile : tempVideoList) {
if (videoFile.isFile()) {
//from here
try {
retriever.setDataSource(videoFile.getAbsolutePath());
myBitmap = retriever.getFrameAtTime(11); //at 11th second
} catch (Exception ex) {
Log.i("MyDebugCode", "MediaMetadataRetriever got exception:" + ex);
}
videoGalleryThumbnails.add(myBitmap);
//to here
}
sieht Wenn ich den Code markiert als „von hier“ auf „here“ mit dem oberen ersten Code zu ersetzen, es funktioniert. Ich habe auch versucht, MediaMetadataRetriever.OPTION_CLOSEST und OPTION_CLOSEST_SYNC und OPTION_NEXT_SYNC.
Können Sie die videoFile-Deklaration überprüfen und freigeben? –
Ich habe meinen Code bearbeitet, damit Sie die Deklaration sehen. Es scheint soweit in Ordnung zu sein. – qweret