J'ai créé une application d'enregistrement vidéo avec un dialogue de bibliothèque. La boîte de dialogue de la bibliothèque affiche la liste des vidéos enregistrées où chaque élément se compose d'une icône, d'un titre vidéo, de balises et d'informations de localisation de la manière suivante:
Quelqu'un sait-il s'il est possible de remplacer les icônes par des miniatures vidéo (aperçu d'une seule image)?
Merci!
Réponses:
Si vous utilisez l'API 2.0 ou une version plus récente, cela fonctionnera.
la source
id
?si vous ne pouvez pas ou ne pouvez pas passer par le curseur et si vous n'avez que des chemins ou des objets File, vous pouvez utiliser depuis le niveau API 8 (2.2) public static Bitmap createVideoThumbnail (String filePath, int kind)
Documentation Android
Le code suivant fonctionne parfaitement:
la source
t have my video ID. For better quality use
MediaStore.Video.Thumbnails.FULL_SCREEN_KIND`Utilisation de la classe:
Nous pouvons obtenir deux tailles de vignettes d'aperçu à partir de la vidéo:
Thumbnails.MICRO_KIND
pour 96 x 96Thumbnails.MINI_KIND
pour 512 x 384 pxCeci est un exemple de code:
la source
Actuellement, j'utilise le code suivant:
Mais j'ai trouvé une meilleure solution avec la bibliothèque Glide avec le code suivant (elle met également en cache votre image et a de meilleures performances que l'approche précédente)
la source
Je vous suggère vraiment d'utiliser le Glide bibliothèque . C'est l'un des moyens les plus efficaces de générer et d'afficher une vignette vidéo pour un fichier vidéo local.
Ajoutez simplement cette ligne à votre fichier gradle:
Et cela deviendra aussi simple que:
Vous pouvez trouver plus d'informations ici: https://futurestud.io/blog/glide-displaying-gifs-and-videos
À votre santé !
la source
Cette solution fonctionnera pour n'importe quelle version d'Android. Il a prouvé qu'il fonctionnait dans les versions 1.5 et 2.2. Ce n'est pas une autre solution "Ceci est pour Android 2.0+". J'ai trouvé cela via une page de collecte de babillards électroniques et je ne trouve pas le lien d'origine. Tout le mérite revient à l'affiche originale.
Dans votre application, vous utiliseriez ceci en appelant:
Quelque part dans sa propre fonction (en dehors de OnCreate, ect), vous auriez besoin de:
Dans votre dossier src, vous avez besoin d'un nouveau sous-répertoire android / media qui hébergera la classe (copiée à partir de la source android elle-même) qui vous permettra d'utiliser cette fonction. Cette partie ne doit pas être modifiée, renommée ou placée ailleurs. MediaMetadataRetriever.java doit être sous android.media dans votre dossier source pour que tout cela fonctionne.
la source
MediaMetadataRetriever
est pris en charge à partir du niveau d'API 10Essayez ça, ça marche pour moi
la source
Android 1.5 et 1.6 n'offrent pas ces vignettes, mais 2.0, comme on le voit dans les notes de version officielles :
la source
Je réponds tardivement à cette question mais j'espère que cela aidera l'autre candidat confronté au même problème.
J'ai utilisé deux méthodes pour charger la vignette de la liste des vidéos, la première était
cela a l'air bien mais il y avait un problème avec cette solution car lorsque je fais défiler la liste de vidéos, elle gèlera un certain temps en raison de son traitement important.
donc après cela, j'ai trouvé une autre solution qui fonctionne parfaitement en utilisant Glide Library.
J'ai recommandé la solution la plus récente pour afficher la vignette avec la liste des vidéos. Merci
la source
Ceci est le code pour la vignette vidéo en direct.
la source
Bitmap bitmap = ThumbnailUtils.createVideoThumbnail(mMediaPath, MediaStore.Video.Thumbnails.MICRO_KIND);
Notez que tous les paramètres sont définis