您的位置:首页 > 其它

获取SD卡上所有的音乐文件信息

2011-09-24 13:55 253 查看
在系统启动、插拔USB的时候,系统会把SD卡上所有的音乐文件信息保存到数据库,可以使用Content Provider获取到所有信息:

ContentResolver cr = getApplication().getContentResolver();
if (cr == null) {
	return;
}
// 获取所有歌曲
Cursor cursor = cr.query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, 
	null, null, null, MediaStore.Audio.Media.DEFAULT_SORT_ORDER);
if (null == cursor) {
	return;
}

if (cursor.moveToFirst()) {
	do {
		String title = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.TITLE));
		String singer = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ARTIST));
		String album = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ALBUM));
		long size = cursor.getLong(cursor.getColumnIndex(MediaStore.Audio.Media.SIZE));
		int duration = cursor.getInt(cursor.getColumnIndex(MediaStore.Audio.Media.DURATION));
		String url = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.DATA));
	} while (cursor.moveToNext());
}


不过这存在一些缺点,我在模拟器上调试的时候,发现获取到的字符串,只要含有中文就是乱码,这可能是因为,音乐文件中相关信息在中国采用的是GBK编码,在英语国家采用的是其他编码造成的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: