如何在android(API 19)中获取MEDIA(MediaStore.Audio.Media)的封面图片

时间:2014-07-10 22:17:53

标签: java android audio uri albumart

所以我试图构建一个非常简单的音乐播放器(几天前我开始使用android)。直到现在我编写了代码来检索歌曲信息。但是,我无法为每一种媒体检索专辑封面。 我知道在MediaStore.Audio.Album中有一个专栏ALBUM_ART(我试图检索每张专辑的专辑封面并且它有效),但是我想为每首歌分配专辑封面而我不知道如何做到这一点。 上网我发现了这种代码:

Uri sArtworkUri = Uri.parse("content://media/external/audio/albumart");
Uri albumArtUri = ContentUris.withAppendedId(sArtworkUri, albumId);

但它似乎不起作用,我得到的只是null。有人可以解释我如何检索每首歌的专辑封面吗?

1 个答案:

答案 0 :(得分:0)

String [] columns = {android.provider.MediaStore.Audio.Albums._ID,                    android.provider。 MediaStore.Audio.Albums.ALBUM,android.provider.MediaStore.Audio.Albums.ALBUM_ART};             int album_column_index = 0;             Cursor cursor = getActivity()。managedQuery(                     MediaStore.Audio.Albums.EXTERNAL_CONTENT_URI,columns,null,                     null,null);

        if (cursor.moveToFirst()) {
            do {


                arrAlbumNAme.add( cursor.getString(cursor
                        .getColumnIndex(android.provider.MediaStore.Audio.Albums.ALBUM)));
                album_column_index = cursor.getColumnIndexOrThrow(android.provider.MediaStore.Audio.Albums._ID);
                //cursor.moveToPosition(position);
                albumID = cursor.getInt(album_column_index);
                Uri sArtworkUri = Uri.parse("content://media/external/audio/albumart");
                Uri uri = ContentUris.withAppendedId(sArtworkUri, albumID);
                arrAlbumArt.add(cursor.getString(cursor
                        .getColumnIndex(android.provider.MediaStore.Audio.Albums.ALBUM_ART)));

            } while (cursor.moveToNext());
        }

内部适配器 holder.image_icon.setImageUri(arrAlbumArt.get(位置));