android实现加载音频文件

    当我们想要制作一个音乐播放器进行播放歌曲时,如何查找出各个文件夹下的文件呢?原来android自带有多媒体扫描器mediascanner,当系统启动或者是SD卡重装时它会对系统内存或SD卡文件进行扫描,把视频文件和音频文件放入mediastore数据库中,并设置了内容提供者接口让我们对数据库进行查询。

我们可以利用内容解析者对查询数据库,代码如下:

 new Thread(new Runnable() {
            @Override
            public void run() {
                //定义内容解析者
                ContentResolver resolver = getContentResolver();
                Uri uri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
                String[] args = {
                        MediaStore.Audio.Media.DISPLAY_NAME,//音频文件在sdcard的名称
                        MediaStore.Audio.Media.DURATION,//音频总时长
                        MediaStore.Audio.Media.SIZE,//音频的文件大小
                        MediaStore.Audio.Media.DATA,//音频的绝对地址
                        MediaStore.Audio.Media.ARTIST,//音频的演唱者
                };
                Cursor cursor = resolver.query(uri, args, null, null, null);
                MediaItem item;
                if (cursor != null) {
                    list = new ArrayList<MediaItem>();
                    while (cursor.moveToNext()) {
                        item = new MediaItem();
                        item.setName(cursor.getString(0));
                        item.setDuration(cursor.getLong(1));
                        item.setSize(cursor.getLong(2));
                        item.setData(cursor.getString(3));
                        item.setArtist(cursor.getString(4));
                        list.add(item);
                    }
                    cursor.close();
                }
            }
        }).start();

注意这是一个耗时操作,需要在新的线程中执行。此时我们可以得到音频的各种信息,并封装到集合中。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值