android-从音频数据库获取音乐数据

android-从音频数据库获取音乐数据


在android中,手机开机或者有SD卡插拔等事件发生时,系统将会自动扫描SD卡和手机内存上的媒体文件,如音频,视频,图片等,将相应的信息放到定义好的数据库表格中。在这个程序中,我们不需要关心如何去扫描手机中的文件,只要了解如何查询和使用这些信息就可以了。


在android在的data/data下有一个数据库,专门用于存放媒体数据。

此数据库的具体路径位于data/data/com.android.providers.media/databases下:




java代码-拿到audio数据表中的数据


拿到ContentResolver对象

ContentResolver  contentResolver = getContentResolver();//获得内容解析者


查到a udio数据表,得到一个Cursor

Cursor cursor = contentResolver.query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null, null, null, null);

          参数一:   MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,//uri,这里的uri是外置存储

          参数二:   null,// 字段 没有字段 就是查询所有信息 相当于SQL语句中的 “ * ”

          参数三:   null, // 查询条件

          参数四:    null, // 条件的对应?的参数

          参数五:   null;// 排序方式

将查到的各字段数据存入集合中

 /*
                private String _data, title, artist, album;//路径,歌名,歌手,专辑
                private int _size, duration;//大小,时长
                 */
                String music_data = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.DATA));//歌曲路径
                String musictitle = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.TITLE));//歌曲名字
                String musicartist = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ARTIST));//歌曲歌手
                String musicalbum = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ALBUM));//歌曲专辑
                String music_size = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.SIZE));//歌曲大小
                String musicduration = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.DURATION));//歌曲时长
                arrayList.add(new MusicData(music_data, musictitle, musicartist, musicalbum, Long.parseLong(music_size), Long.parseLong(musicduration)));



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值