1. 程式人生 > >掃描歌曲

掃描歌曲

lis text store public smu clist lose query filename

/**
 * 掃描歌曲
 */
public static void scanMusic(Context context, List<Music> musicList) {
    musicList.clear();
    Cursor cursor = context.getContentResolver().query(
            MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null, null, null,
            MediaStore.Audio.Media.DEFAULT_SORT_ORDER);
    
if (cursor == null) { return; } while (cursor.moveToNext()) { // 是否為音樂 int isMusic = cursor.getInt(cursor.getColumnIndex(MediaStore.Audio.Media.IS_MUSIC)); if (isMusic == 0) { continue; } 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)); // 專輯 String album = cursor.getString((cursor.getColumnIndex(MediaStore.Audio.Media.ALBUM)));
// 持續時間 long duration = cursor.getLong(cursor.getColumnIndex(MediaStore.Audio.Media.DURATION)); // 音樂uri String uri = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.DATA)); // 專輯封面id,根據該id可以獲得專輯圖片uri long albumId = cursor.getLong(cursor.getColumnIndex(MediaStore.Audio.Media.ALBUM_ID)); String coverUri = getCoverUri(context, albumId); // 音樂文件名 String fileName = cursor.getString((cursor.getColumnIndex(MediaStore.Audio.Media.DISPLAY_NAME))); // 音樂文件大小 long fileSize = cursor.getLong(cursor.getColumnIndex(MediaStore.Audio.Media.SIZE)); // 發行時間 String year = cursor.getString((cursor.getColumnIndex(MediaStore.Audio.Media.YEAR))); Music music = new Music(); music.set... musicList.add(music); } cursor.close(); } /** * 查詢專輯封面圖片uri */ private static String getCoverUri(Context context, long albumId) { String uri = null; Cursor cursor = context.getContentResolver().query( Uri.parse("content://media/external/audio/albums/" + albumId), new String[]{"album_art"}, null, null, null); if (cursor != null) { cursor.moveToNext(); uri = cursor.getString(0); cursor.close(); } CoverLoader.getInstance().loadThumbnail(uri); return uri; }

掃描歌曲