从MediaStore获取制定文件夹下的视频信息

MediaStore是android提供的一个多媒体数据库,在系统重新启动的时候,会主动的去扫描全盘,将所有的音视频,图片文件的信息存储到这个数据库中。android对多有多媒体数据库接口进行了封装,我们可以通过ConentResolver去调用封装好的接口来进行数据库操作。

案例一:

获取“/storage/emulated/0/DCIM/Camera/”下“Vc”开头的文件下的所有视频的修改时间,路径,时长等信息。

private static final String[] VIDEO_PROJECT = { MediaStore.Video.Media._ID, MediaStore.Video.Media.DATE_MODIFIED, MediaStore.Video.Media.DURATION, MediaStore.Video.Media.DATA,MediaStore.Video.Media.DATE_TAKEN };
String selection = MediaStore.Video.Media.DATA+" like ?";
				Cursor cursor = getContentResolver().query(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, VIDEO_PROJECT, selection, new String[]{"/storage/emulated/0/DCIM/Camera/Vc"+"%"}, MediaColumns.DATE_MODIFIED + " DESC");
				if (cursor != null) {
					int idindex = cursor.getColumnIndex(BaseColumns._ID);
					int modifiedindex = cursor.getColumnIndex(MediaStore.Video.Media.DATE_MODIFIED);
					int durationindex = cursor.getColumnIndex(MediaStore.Video.Media.DURATION);
					int dataindex = cursor.getColumnIndex(MediaStore.Video.Media.DATA);
					int takenindex = cursor.getColumnIndex(MediaStore.Video.Media.DATE_TAKEN);
					while (cursor.moveToNext()) {
						VideoInfo info = new VideoInfo();
						info.setId(cursor.getInt(idindex));
						info.setPath(cursor.getString(dataindex));
						info.setDateModified(cursor.getLong(modifiedindex));
						info.setDateTaken(cursor.getLong(takenindex));
						info.setDuration(cursor.getInt(durationindex));
						mVideoInfos.add(info);
						Log.d("videoinfo", info.toString());
					}
			



ConentResolver中query字段解析:

query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder)

Uri uri:MediaStore.Video.Media.EXTERNAL_CONTENT_URI     视频所对应的content://

String[] projection:

private static final String[] VIDEO_PROJECT = { MediaStore.Video.Media._ID, MediaStore.Video.Media.DATE_MODIFIED, MediaStore.Video.Media.DURATION, MediaStore.Video.Media.DATA,MediaStore.Video.Media.DATE_TAKEN };

需要查询的字段,不填则查询出所有字段

String selection:

查询条件:参数以?代替,在String[] selectionArgs数组中给出;null则查询所有的

String[] selectionArgs:

查询条件对应的参数;没有则传null


  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值