So I have songList[position].id as my MediaStore ID. I tried below method to read from albumart but it didn't work.
val artworkUri = Uri.parse("content://media/external/audio/albumart")
val path = ContentUris.withAppendedId(artworkUri, songList[position].id)
Glide.with(holder.songCover.context).load(songList[position].path.toUri()).into(holder.songCover)
I also tried Glide.with(holder.songCover.context).loadFromMediaStore()
, but it seems that this method doesn't exist.
make sure you have the necessary permissions in your AndroidManifest.xml
and get permissions in your app
use this :
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
then modify your code as follows:
val artworkUri = Uri.parse("content://media/external/audio/albumart")
val albumArtUri = ContentUris.withAppendedId(artworkUri, songList[position].id)
Glide.with(holder.songCover.context)
.load(albumArtUri)
.placeholder(R.drawable.placeholder) // Optional placeholder image while loading
.error(R.drawable.error) // Optional error image if loading fails
.into(holder.songCover)