Android获取本地视频缩略图的几种方法

记录一下:

1.使用MediaMetadataRetriever获取Bitmap:
较占内存

MediaMetadataRetriever media = new MediaMetadataRetriever();
media.setDataSource(videoPath);
Bitmap bitmap = media.getFrameAtTime();

2.使用ThumbnailUtils类获取Bitmap:
需要Android 2.2以后,也较占内存

Bitmap bitmap = ThumbnailUtils.createVideoThumbnail(videoPath, Thumbnails.MICRO_KIND);
//Bitmap bitmap = ThumbnailUtils.extractThumbnail(bitmap, width, height, ThumbnailUtils.OPTIONS_RECYCLE_INPUT);

3.从媒体库中查询:
不是很稳定而且有新视频的时候要通知系统重新扫描

    Cursor cursor = getContentResolver().query(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, null, MediaStore.Video.Media.ALBUM + "=?", new String[]{Constants.DIRECTORY_VIDEO}, MediaStore.Video.Media.DEFAULT_SORT_ORDER);
    try {
        for (cursor.moveToFirst(); !cursor.isAfterLast(); cursor.moveToNext()) {
            int id = cursor.getInt(cursor.getColumnIndexOrThrow(MediaStore.Video.Media._ID));
            //视频缩略图路径
            String albumPath = "";
            Cursor thumbCursor = context.getApplicationContext().getContentResolver().query(
                    MediaStore.Video.Thumbnails.EXTERNAL_CONTENT_URI,
                    null, MediaStore.Video.Thumbnails.VIDEO_ID
                            + "=" + id, null, null);
            if (thumbCursor.moveToFirst()) {
                albumPath = thumbCursor.getString(thumbCursor
                        .getColumnIndex(MediaStore.Video.Thumbnails.DATA));
                Bitmap bitmap = BitmapFactory.decodeFile(albumPath);
            }
        }
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        if (cursor != null)
            cursor.close();
    }

4.使用开源库Fresco

mImage.setImageURI(Uri.parse("file://" +  filePath));

5.使用开源库Glide

Glide  
.with( context )
.load( Uri.fromFile( new File( filePath ) ) )
.into( mImage);

参考:

android获得本地视频缩略图
安卓获取视频缩略图,展示于ListView中,完美实现
android 获取本地视频文件以及缩略图
查询手机所有视频文件以及获取缩略图

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,932评论 25 709
  • Glide笔记 一、简介 在泰国举行的谷歌开发者论坛上,谷歌为我们介绍了一个名叫Glide的图片加载库,作者是bu...
    AndroidMaster阅读 3,995评论 0 27
  • 7.1 压缩图片 一、基础知识 1、图片的格式 jpg:最常见的图片格式。色彩还原度比较好,可以支持适当压缩后保持...
    AndroidMaster阅读 2,585评论 0 13
  • 紅塵幾番若離離 似夢非夢夢連連 待看鏡中花月夜 ...
    Lucia红南阅读 304评论 0 1
  • 也许是因为自己不是个喜欢讲话的人,尤其是在人多的时候,所以,更多的时候是静静的坐着,做着自己手头的事。但并没有做到...
    夏雨青春阅读 431评论 0 1