uamp icon indicating copy to clipboard operation
uamp copied to clipboard

Download album artwork on demand

Open ghost opened this issue 6 years ago • 2 comments

Is there a way to download artwork only for currently playing track?

// Block on downloading 
val art = glide.applyDefaultRequestOptions(glideOptions)
      .asBitmap()
      .load(song.image)
      .submit(NOTIFICATION_LARGE_ICON_SIZE, NOTIFICATION_LARGE_ICON_SIZE)
      .get()

This downloads all album artworks.

ghost avatar Feb 05 '19 13:02 ghost

See #235

trustedtomato avatar Feb 06 '19 08:02 trustedtomato

Hi, the way I do it is as follows.... ---> MusicService.kt

private inner class MediaControllerCallback : MediaControllerCompat.Callback() {

        override fun onMetadataChanged(metadata: MediaMetadataCompat?) {

            val state = mediaController.playbackState.state


            if (state == PlaybackState.STATE_BUFFERING &&
                metadata?.description?.mediaId != null &&
                state != STATE_NONE
            ) {

                val art = ArtCache.getInstance()?.getBigImage(metadata.description.iconUri.toString())

                if (art != null) {
                    val media = MediaMetadataCompat.Builder(metadata)
                        .putBitmap(MediaMetadataCompat.METADATA_KEY_ALBUM_ART, art)
                        .build()
                    mediaSession.setMetadata(media)
                }

            }


            mediaController.playbackState?.let {
                updateNotification(it)
            }

        }

        override fun onPlaybackStateChanged(state: PlaybackStateCompat?) {
            state?.let {
                updateNotification(it)
            }
        }


        private fun updateNotification(state: PlaybackStateCompat) {
            //Code...
        }
    }
}

ErickAlvz avatar Aug 22 '19 07:08 ErickAlvz