Search code examples
androidkotlinviewandroid-glide

How to load media's album cover with glide?


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.


Solution

  • 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)