获取手机中的视频

本文介绍了一种使用Android的内容解析者来获取设备上所有视频文件的方法。通过定义查询参数并利用MediaStore API,可以有效地检索出视频文件的名称、大小、长度及路径。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

安卓自身带有内容解析者,只要将查询的参数写对,就可以获取所有的视频文件了。

先写个实体类,用于保存视频的信息

    public class VideoInfo{
        public String name;//视频文件名
        public long size;//视频大小
        public long durantion;//视频长度
        public String url;//视频路径

        @Override
        public String toString() {
            return "VideoInfo{" +
                    "name='" + name + '\'' +
                    ", size=" + size +
                    ", durantion=" + durantion +
                    ", url='" + url + '\'' +
                    '}';
        }
    }

然后写个查询条件
        String limit[] = {
                MediaStore.Video.Media.DISPLAY_NAME,//视频名称
                MediaStore.Video.Media.SIZE,//大小
                MediaStore.Video.Media.DURATION,//长度
                MediaStore.Video.Media.DATA,//播放地址
        };
再用一个List来保存所有视频

List<VideoInfo> list = new ArrayList<>();
最后调用内容提供者来获取视频信息,之前最好判断一下SD卡是否挂载了

        ContentResolver cr = getContentResolver();
        if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){//sd卡已挂载
            Cursor cursor = cr.query(MediaStore.Video.Media.EXTERNAL_CONTENT_URI,limit,null,null,null);
            while (cursor.moveToNext()){
                VideoInfo video = new VideoInfo();
                video.name = cursor.getString(0);
                video.size = cursor.getLong(1);
                video.durantion = cursor.getLong(2);
                video.url = cursor.getString(3);
                list.add(video);
            }
        }

下面是我的测试结果:

 手机中的视频信息:[VideoInfo{name='VID_20161002_183641.mp4', size=3009357, durantion=2581, url='/storage/emulated/0/DCIM/Camera/VID_20161002_183641.mp4'},
 VideoInfo{name='VID_20161003_110003.mp4', size=73749429, durantion=72555, url='/storage/emulated/0/DCIM/Camera/VID_20161003_110003.mp4'}, VideoInfo{name='
VID_20161005_082642.mp4', size=81869598, durantion=80661, url='/storage/emulated/0/DCIM/Camera/VID_20161005_082642.mp4'}, VideoInfo{name='test.mp4', size=
17918237, durantion=259181, url='/storage/emulated/0/storage/emulated/0/test.mp4'}]


所有视频都获取到了。这样的方式只能获取非其他APP内部视频以外的所有视频文件,其他APP沙盘下面的文件的话,只能用别的方式获取到了。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值