private Bitmap GetThunbailFromVideo(string filename, ThumbnailKind ScreenKind) { Bitmap thumb = ThumbnailUtils.CreateVideoThumbnail(filename, ScreenKind); return(RotateBitmap(thumb, 90)); }
public static Dictionary <long, string> GetMediaThumbnailsPaths(ContentResolver contentResolver, ThumbnailKind kind) { string[] columns = { MediaStore.Images.Thumbnails.Data, MediaStore.Images.Thumbnails.ImageId }; var cursor = contentResolver.Query(MediaStore.Images.Thumbnails.ExternalContentUri, columns, $"{MediaStore.Images.Thumbnails.Kind} = {(int)kind}", null, null); var dic = new Dictionary <long, string>(); var dublicate = new HashSet <long>(); if (cursor != null) { var count = cursor.Count; var dataColumnIndex = cursor.GetColumnIndex(MediaStore.Images.Thumbnails.Data); var idColumnIndex = cursor.GetColumnIndex(MediaStore.Images.Thumbnails.ImageId); for (var i = 0; i < count; i++) { cursor.MoveToPosition(i); var key = cursor.GetLong(idColumnIndex); var value = cursor.GetString(dataColumnIndex); if (dic.ContainsKey(key)) { dublicate.Add(key); var file = new File(dic[key]); if (file.Exists()) { file.Delete(); } file = new File(value); if (file.Exists()) { file.Delete(); } contentResolver.Delete(MediaStore.Images.Thumbnails.ExternalContentUri, MediaStore.Images.Thumbnails.ImageId + "=?", new[] { key.ToString() }); dic.Remove(key); } else if (dublicate.Contains(key)) { var file = new File(value); if (file.Exists()) { file.Delete(); } } else { dic.Add(key, value); } } cursor.Close(); } return(dic); }
/** * * 获取视频的缩略图 先通过ThumbnailUtils来创建一个视频的缩略图,然后再利用ThumbnailUtils来生成指定大小的缩略图。 * * 如果想要的缩略图的宽和高都小于MICRO_KIND,则类型要使用MICRO_KIND作为kind的值,这样会节省内存。 * * * * @param videoPath * * 视频的路径 * * @param width * * 指定输出视频缩略图的宽度 * * @param height * * 指定输出视频缩略图的高度度 * * @param kind * * 参照MediaStore.Images.Thumbnails类中的常量MINI_KIND和MICRO_KIND。 * * 其中,MINI_KIND: 512 x 384,MICRO_KIND: 96 x 96 * * @return 指定大小的视频缩略图 * */ public static Bitmap GetVideoThumbnail(String videoPath, int width, int height, ThumbnailKind kind) { Bitmap bitmap = null; bitmap = ThumbnailUtils.CreateVideoThumbnail(videoPath, kind); bitmap = ThumbnailUtils.ExtractThumbnail(bitmap, width, height, ThumnailExtractOptions.RecycleInput); return(bitmap); }