1,从本地数据库获取音乐
完整代码:
//申明两个成员变量:
static ContentResolver resolver = null ;
static Cursor cursor = null ;
//获取专辑封面的Uri路径
private static final Uri albumArtUri = Uri.parse("content://media/external/audio/albumart");
//返回音乐集合的方法,调用这个方法就可以了
public static List getMusicList(Context context){
List musicList = new ArrayList();
resolver = context.getContentResolver();
cursor = resolver.query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null, null, null,null);
if (null == cursor) {
return null;
}
cursor.moveToFirst();
if (cursor.moveToFirst()) {
do {
//创建一个音乐对象
Music m = new Music();
//音乐id
long id = cursor.getLong(cursor.getColumnIndex(MediaStore.Audio.Media._ID));
// 标题
String title = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.TITLE));
// 歌手
String artist = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ARTIST));
if ("".equals(artist)) {
artist = "未知艺术家";
}
//专辑名字
String album = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ALBUM));
//专辑ID
long albumId = cursor.getInt(cursor.getColumnIndex(MediaStore.Audio.Media.ALBUM_ID));
//大小
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));
//音乐文件名
String name = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.DISPLAY_NAME));
if (duration >= 1000 && duration <= 900000) {
//此处添加music音乐信息,到列表
m.setTitle(title);
m.setArtist(artist);
m.setAlbum(album);
m.setSize(size);
m.setDuration(duration);
m.setUrl(url);
m.setName(name);
m.setId(id);
m.setAlbumId(albumId);
m.setAlbum_bit( getAmbum(context,id,albumId) );
musicList.add(m);
}
}while (cursor.moveToNext());
}
if (cursor != null) {
// 结果集移动到最后一列,再下移为空;释放资源
cursor.close();
}
return musicList;
}
【注】
代码中的Music类是自己建的,里面的属性
要包含以上所有的音乐属性。
1551





