android查看视频和图片格式,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);

参考:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值