新建一个名为GetMusicData的工具类,使用ContentResolver来读取ContentProvider中的媒体文件信息,取得歌曲列表(包括歌曲的歌名、歌手时长等信息)
public class GetMusicData {
public static ArrayList<Song> getMusicData(Context context) {
ArrayList<Song> musicData = new ArrayList<Song>();
ContentResolver cr = context.getContentResolver();
Cursor cursor = cr.query(
MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null, null,
null, MediaStore.Audio.Media.DEFAULT_SORT_ORDER);
Log.i("游标中的数据的行数", cursor.getCount()+ "");
if(null != cursor && cursor.getCount()>0){
for(cursor.moveToFirst();!cursor.isAfterLast();cursor.moveToNext()){
String title = cursor.getString(cursor
.getColumnIndexOrThrow(MediaStore.Audio.Media.TITLE));
// Log.i("GetMusicdata--------------------", title);
String singer = cursor.getString(cursor
.getColumnIndexOrThrow(MediaStore.Audio.Media.ARTIST));
// Log.i("GetMusicdata--------------------", singer);
int time = cursor
.getInt(cursor
.getColumnIndexOrThrow(MediaStore.Audio.Media.DURATION));
// Log.i("GetMusicdata--------------------", time + "");
String name = cursor
.getString(cursor
.getColumnIndexOrThrow(MediaStore.Audio.Media.DISPLAY_NAME));
// Log.i("GetMusicdata--------------------", name);
String suffix = name
.substring(name.length() - 4, name.length());
String url = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DATA));
if (suffix.endsWith(".mp3") || suffix.endsWith(".MP3")) {
Song song = new Song();
song.setTitle(title);
song.setSinger(singer);
song.setName(name);
song.setTime(time);
song.setUrl(url);
musicData.add(song);
}
}
cursor.close();// 关闭游标
}
Log.i("歌曲总共有=============", musicData.size()+"");
return musicData;
}