summaryrefslogtreecommitdiff
path: root/media/java/android/media/ThumbnailUtils.java
diff options
context:
space:
mode:
Diffstat (limited to 'media/java/android/media/ThumbnailUtils.java')
-rw-r--r--media/java/android/media/ThumbnailUtils.java10
1 files changed, 9 insertions, 1 deletions
diff --git a/media/java/android/media/ThumbnailUtils.java b/media/java/android/media/ThumbnailUtils.java
index 4cc86fdce2f2..fd1406078e7a 100644
--- a/media/java/android/media/ThumbnailUtils.java
+++ b/media/java/android/media/ThumbnailUtils.java
@@ -160,7 +160,15 @@ public class ThumbnailUtils {
MediaMetadataRetriever retriever = new MediaMetadataRetriever();
try {
retriever.setDataSource(filePath);
- bitmap = retriever.getFrameAtTime(-1);
+ // First retrieve album art in metadata if set.
+ byte[] embeddedPicture = retriever.getEmbeddedPicture();
+ if (embeddedPicture != null && embeddedPicture.length > 0) {
+ bitmap = BitmapFactory.decodeByteArray(embeddedPicture, 0, embeddedPicture.length);
+ }
+ // Fall back to first frame of the video.
+ if (bitmap == null) {
+ bitmap = retriever.getFrameAtTime(-1);
+ }
} catch (IllegalArgumentException ex) {
// Assume this is a corrupt video file
} catch (RuntimeException ex) {