Я хочу отобразить список песен, присутствующих в моем внутреннем хранилище, вместе с обложкой альбома. Я использую этот код для загрузки песен в моем списке.
private void getSongsList() {
final Uri uri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
final String[] cursor_cols = { MediaStore.Audio.Media._ID,
MediaStore.Audio.Media.ARTIST, MediaStore.Audio.Media.ALBUM,
MediaStore.Audio.Media.TITLE, MediaStore.Audio.Media.DATA,
MediaStore.Audio.Media.ALBUM_ID,
MediaStore.Audio.Media.DURATION };
final String where = MediaStore.Audio.Media.IS_MUSIC + "=1";
final Cursor cursor = getActivity().getContentResolver().query(uri,
cursor_cols, where, null, null);
if(cursor != null && cursor.moveToFirst()) {
do {
String artist = cursor.getString(cursor
.getColumnIndexOrThrow(MediaStore.Audio.Media.ARTIST));
String album = cursor.getString(cursor
.getColumnIndexOrThrow(MediaStore.Audio.Media.ALBUM));
String songName = cursor.getString(cursor
.getColumnIndexOrThrow(MediaStore.Audio.Media.TITLE));
String data = cursor.getString(cursor
.getColumnIndexOrThrow(MediaStore.Audio.Media.DATA));
long albumId = cursor.getLong(cursor
.getColumnIndexOrThrow(MediaStore.Audio.Media.ALBUM_ID));
int duration = cursor.getInt(cursor
.getColumnIndexOrThrow(MediaStore.Audio.Media.DURATION));
Uri sArtworkUri = Uri
.parse("content://media/external/audio/albumart");
Uri albumArtUri = ContentUris.withAppendedId(sArtworkUri, albumId);
songsList.add(new SongData(songName, artist, data, album, albumArtUri, duration));
}while (cursor.moveToNext());
cursor.close();
Collections.sort(songsList, new Comparator<SongData>(){
public int compare(SongData a, SongData b){
return a.getSongName().compareTo(b.getSongName());
}
});
}
}
Я использую Glide, чтобы загрузить изображение в мое изображение, используя это
SongData sd = list.get(position);
Glide.with(context)
.load(sd.getAlbumArtUri())
.apply(new RequestOptions()
.placeholder(R.drawable.ic_music))
.into(holder.albumArt);
Проблема в том, что все мои песни отображаются в моем RecyclerView, но не с обложкой альбома, а с изображением моего заполнителя. Ни у одной песни не было обложки альбома. Чтобы убедиться, что с моими песнями связана обложка альбома, я использовал другое приложение музыкального проигрывателя, и там отображаются обложки моих песен, что не так с моим кодом?