最近做了个项目,在项目中需要获取本地的音乐文件.Android ContentResolver提供的查询接口,我们可以得到各种需要的信息。代码比简单
Media._ID:歌曲编号
Media.TITLE:歌曲标题
Media.ALBUM:歌曲的专辑名
Media.ARTIST:歌曲的歌手名
Media.DATA:歌曲文件的路径
Media.DURATION:歌曲的总播放时长
Media.SIZE:歌曲文件的大小
Media.DATE_ADDED:该文件被添加到媒体库的时间
private void getData() {
// 查询媒体数据库
Cursor cursor = context.getContentResolver().query(
Media.EXTERNAL_CONTENT_URI, null, null, null,
Media.DEFAULT_SORT_ORDER);
// 遍历媒体数据库
if (cursor != null) {
while (cursor.moveToNext()) {
// 歌曲标题
String tilte = cursor.getString(cursor
.getColumnIndex(Media.TITLE));
// 歌曲文件的路径 :MediaStore.Audio.Media.DATA
String url = cursor
.getString(cursor.getColumnIndex(Media.DATA));
int time = cursor.getInt(cursor.getColumnIndex(Media.DURATION));
HashMap<String, String> map = new HashMap<String, String>();
map.put("musicTitle", tilte);
map.put("musicFileUrl", url);
map.put("musicTime", String.valueOf(time));
list.add(map);
}
cursor.close();
}
}