获取手机中的视频

来源:互联网 发布:java 数组 属于 那个类 编辑:程序博客网 时间:2024/04/29 15:24

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

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

    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沙盘下面的文件的话,只能用别的方式获取到了。



0 0
原创粉丝点击