if (cursor.moveToFirst()) {
getSongList(cursor);
}
return;
}
/**
* getSongList()
* @param cursor
*/
public void getSongList(Cursor cursor) {
Song song = null;
do {
song = new Song();
song.setmFileName(cursor.getString(1));// file Name
song.setmFileTitle(cursor.getString(2));// song name
song.setmDuration(cursor.getInt(3));// play time
song.setmSinger(cursor.getString(4));// artist
song.setmAlbum(cursor.getString(5));// album
if (cursor.getString(6) != null) {
song.setmYear(cursor.getString(6));
} else {
song.setmYear("undefine");
}
if ("audio/mpeg".equals(cursor.getString(7)。trim())) {// file type
song.setmFileType("mp3");
} else if ("audio/x-ms-wma".equals(cursor.getString(7)。trim())) {
song.setmFileType("wma");
}
if (cursor.getString(8) != null) {// fileSize
float temp = cursor.getInt(8) / 1024f / 1024f;
String sizeStr = (temp + "")。substring(0, 4);
song.setmFileSize(sizeStr + "M");
} else {
song.setmFileSize("undefine");
}
if (cursor.getString(9) != null) {//file path
song.setmFilePath(cursor.getString(9));
}
mSongsList.add(song);
} while (cursor.moveToNext());
cursor.close();
return;
}
}
有了上面的两个类,那么就剩下使用上面的类了:
SongInfoUtils songinfoutils = new SongInfoUtils(this);//此处的this是一个Context
String[] songsInfo = songinfoutils.getFileInfo(path);//此处的path就是你要获取信息的音频文件的路径:/sdcard/aishiniwo.mp3
数组songsInfo中根据上面的代码就可以知道存放了那些值,此处是为了简单这样写了,读者可以用hashmap的key-value来存放,这样读取时就更方便了。