[Android] [PATCH] Get cover art also for upnp network media

Marc K morckx at gmail.com
Mon Nov 7 00:47:42 CET 2016


Previously, cover art of upnp media was only shown in the browser, but
not in the player.

Signed-off-by: Marc K <morckx at gmail.com>
---
 .../src/org/videolan/vlc/gui/helpers/AudioUtil.java   | 19 +++++++++++++++++--
 1 file changed, 17 insertions(+), 2 deletions(-)

diff --git a/vlc-android/src/org/videolan/vlc/gui/helpers/AudioUtil.java b/vlc-android/src/org/videolan/vlc/gui/helpers/AudioUtil.java
index 846f996..efdd684 100644
--- a/vlc-android/src/org/videolan/vlc/gui/helpers/AudioUtil.java
+++ b/vlc-android/src/org/videolan/vlc/gui/helpers/AudioUtil.java
@@ -42,6 +42,7 @@ import org.videolan.vlc.R;
 import org.videolan.vlc.VLCApplication;
 import org.videolan.vlc.media.MediaUtils;
 import org.videolan.vlc.util.AndroidDevices;
+import org.videolan.vlc.util.HttpImageLoader;
 import org.videolan.vlc.util.MurmurHash;
 import org.videolan.vlc.util.Permissions;
 import org.videolan.vlc.util.Util;
@@ -227,6 +228,22 @@ public class AudioUtil {
             }
 
             return artworkURL;
+        } else if (artworkURL != null && artworkURL.startsWith("http://")) {
+            try {
+                /* Hack: The album art cannot actually be loaded synchronously via http.
+                 * HttpImageLoader.downloadBitmap, however, will load it from the icons map
+                 * if it was previously shown as thumbnail.
+                 */
+                Bitmap albumArt = HttpImageLoader.downloadBitmap(artworkURL);
+                if (albumArt != null) {
+                    File outputFile = File.createTempFile("cover-", ".jpg", context.getCacheDir());
+                    FileOutputStream fos = new FileOutputStream(outputFile);
+                    if (albumArt.compress(CompressFormat.JPEG, 90, fos))
+                        return(outputFile.getPath());
+                }
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
         }
         return null;
     }
@@ -322,8 +339,6 @@ public class AudioUtil {
                 if (cacheFile.exists()) {
                     if (cacheFile.length() > 0)
                         coverPath = cachePath;
-                    else
-                        return null;
                 }
             }
 
-- 
2.9.3



More information about the Android mailing list