diff options
| author | 2018-10-04 15:23:52 -0400 | |
|---|---|---|
| committer | 2018-10-04 15:23:52 -0400 | |
| commit | 105d2a35ee9d83d9144b0623b7c9aa64a1ed01fe (patch) | |
| tree | 068e855109487689c6a381f4fce8a33fd517c583 | |
| parent | d4e48c593e1d9447134005d170b5bd00178963a0 (diff) | |
Check album art for video thumbnails.
If there is no album art set, fall back to the first frame in the video,
as was previously done.
Test: manual
Change-Id: Id091c3c8a8054a87124759eb9be3ba759a115ad4
Fixes: 117161952
| -rw-r--r-- | media/java/android/media/ThumbnailUtils.java | 10 |
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) { |