[Android] Audio player: load album art at display resolution

octoclonius git at videolan.org
Mon Jun 1 12:35:11 UTC 2026


vlc-android | branch: master | octoclonius <25781800+octoclonius at users.noreply.github.com> | Sat May  9 14:28:00 2026 -0500| [eb78a72e55db97f5315d1a2bc00c8b02f7d5c6c0] | committer: Nicolas Pomepuy

Audio player: load album art at display resolution

> https://code.videolan.org/videolan/vlc-android/commit/eb78a72e55db97f5315d1a2bc00c8b02f7d5c6c0
---

 .../src/org/videolan/vlc/gui/view/AudioMediaSwitcher.kt          | 9 ++++++---
 .../src/org/videolan/vlc/gui/view/CoverMediaSwitcher.kt          | 3 +++
 2 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/application/vlc-android/src/org/videolan/vlc/gui/view/AudioMediaSwitcher.kt b/application/vlc-android/src/org/videolan/vlc/gui/view/AudioMediaSwitcher.kt
index effa4168b4..0934bc0125 100644
--- a/application/vlc-android/src/org/videolan/vlc/gui/view/AudioMediaSwitcher.kt
+++ b/application/vlc-android/src/org/videolan/vlc/gui/view/AudioMediaSwitcher.kt
@@ -37,6 +37,8 @@ abstract class AudioMediaSwitcher(context: Context, attrs: AttributeSet) : Fling
     private var hasPrevious: Boolean = false
     private var previousPosition: Int = 0
 
+    protected open val coverBitmapWidth: Int = 512
+
     override val viewSwitchListener = object : ViewSwitchListener {
         override fun onSwitching(progress: Float) {
             audioMediaSwitcherListener.onMediaSwitching()
@@ -86,11 +88,12 @@ abstract class AudioMediaSwitcher(context: Context, attrs: AttributeSet) : Fling
         val artMrl = service.coverArt
         val prevArtMrl = service.prevCoverArt
         val nextArtMrl = service.nextCoverArt
+        val targetWidth = coverBitmapWidth
         val (coverCurrent, coverPrev, coverNext) = withContext(Dispatchers.IO) {
             Triple(
-                    artMrl.let { AudioUtil.readCoverBitmap(Uri.decode(artMrl), 512) },
-                    prevArtMrl.let { AudioUtil.readCoverBitmap(Uri.decode(prevArtMrl), 512) },
-                    nextArtMrl?.let { AudioUtil.readCoverBitmap(Uri.decode(nextArtMrl), 512) }
+                    artMrl.let { AudioUtil.readCoverBitmap(Uri.decode(artMrl), targetWidth) },
+                    prevArtMrl.let { AudioUtil.readCoverBitmap(Uri.decode(prevArtMrl), targetWidth) },
+                    nextArtMrl?.let { AudioUtil.readCoverBitmap(Uri.decode(nextArtMrl), targetWidth) }
             )
         }
         val trackInfo = service.trackInfo()
diff --git a/application/vlc-android/src/org/videolan/vlc/gui/view/CoverMediaSwitcher.kt b/application/vlc-android/src/org/videolan/vlc/gui/view/CoverMediaSwitcher.kt
index 9f1fe7d89e..0dafe8730d 100644
--- a/application/vlc-android/src/org/videolan/vlc/gui/view/CoverMediaSwitcher.kt
+++ b/application/vlc-android/src/org/videolan/vlc/gui/view/CoverMediaSwitcher.kt
@@ -38,6 +38,9 @@ import org.videolan.vlc.util.TextUtils
 
 class CoverMediaSwitcher(context: Context, attrs: AttributeSet) : AudioMediaSwitcher(context, attrs) {
 
+    override val coverBitmapWidth: Int
+        get() = if (width > 0) width else context.resources.displayMetrics.widthPixels
+
     override fun addMediaView(
         inflater: LayoutInflater,
         title: String?,



More information about the Android mailing list