Je n'ai pas essayé avec Glide
. Cependant, comme mentionné dans ce issue, vous devez écrire un modèle personnalisé et DataFetcher pour récupérer l'image en utilisant Glide
.
Toutefois, une méthode de contournement qui a fonctionné pour moi est en utilisant MediaMetadataRetriever. Voici comment j'ai récupéré le bitmap miniature sans télécharger le fichier:
public static Bitmap retriveVideoFrameFromVideo(String videoPath)
throws Throwable
{
Bitmap bitmap = null;
MediaMetadataRetriever mediaMetadataRetriever = null;
try
{
mediaMetadataRetriever = new MediaMetadataRetriever();
if (Build.VERSION.SDK_INT >= 14)
mediaMetadataRetriever.setDataSource(videoPath, new HashMap<String, String>());
else
mediaMetadataRetriever.setDataSource(videoPath);
// mediaMetadataRetriever.setDataSource(videoPath);
bitmap = mediaMetadataRetriever.getFrameAtTime();
}
catch (Exception e)
{
e.printStackTrace();
throw new Throwable(
"Exception in retriveVideoFrameFromVideo(String videoPath)"
+ e.getMessage());
}
finally
{
if (mediaMetadataRetriever != null)
{
mediaMetadataRetriever.release();
}
}
return bitmap;
}
Quel type est 'message'? Assurez-vous qu'il pointe vers une ressource valide. – azizbekian