[Android] [PATCH 4/4] Audio Streams : Display NowPlaying metadata
Alexandre Perraud
4leyx4ndre at gmail.com
Mon Nov 24 18:34:24 CET 2014
fix #12815
---
libvlc/src/org/videolan/libvlc/Media.java | 42 ++++++++++++++++++++--
.../src/org/videolan/vlc/audio/AudioService.java | 7 ++++
2 files changed, 46 insertions(+), 3 deletions(-)
diff --git a/libvlc/src/org/videolan/libvlc/Media.java b/libvlc/src/org/videolan/libvlc/Media.java
index 5f10054..6ad91c2 100644
--- a/libvlc/src/org/videolan/libvlc/Media.java
+++ b/libvlc/src/org/videolan/libvlc/Media.java
@@ -111,6 +111,30 @@ public class Media implements Comparable<Media> {
private String mTrackID;
private String mArtworkURL;
+ public final static int libvlc_meta_Title = 0;
+ public final static int libvlc_meta_Artist = 1;
+ public final static int libvlc_meta_Genre = 2;
+// public final static int libvlc_meta_Copyright = 3;
+ public final static int libvlc_meta_Album = 4;
+// public final static int libvlc_meta_TrackNumber = 5;
+// public final static int libvlc_meta_Description = 6;
+// public final static int libvlc_meta_Rating = 7;
+// public final static int libvlc_meta_Date = 8;
+// public final static int libvlc_meta_Setting = 9;
+// public final static int libvlc_meta_URL = 10;
+// public final static int libvlc_meta_Language = 11;
+ public final static int libvlc_meta_NowPlaying = 12;
+// public final static int libvlc_meta_Publisher = 13;
+// public final static int libvlc_meta_EncodedBy = 14;
+ public final static int libvlc_meta_ArtworkURL = 15;
+// public final static int libvlc_meta_TrackID = 16;
+// public final static int libvlc_meta_TrackTotal = 17;
+// public final static int libvlc_meta_Director = 18;
+// public final static int libvlc_meta_Season = 19;
+// public final static int libvlc_meta_Episode = 20;
+// public final static int libvlc_meta_ShowName = 21;
+// public final static int libvlc_meta_Actors = 22;
+
private final String mLocation;
private String mFilename;
private long mTime = 0;
@@ -271,8 +295,17 @@ public class Media implements Comparable<Media> {
return mLocation;
}
- public void updateMeta() {
-
+ public void updateMeta(LibVLC libVLC) {
+ mTitle = libVLC.getMeta(libvlc_meta_Title);
+ mArtist = getValueWrapper(libVLC.getMeta(libvlc_meta_Artist), UnknownStringType.Artist);
+ mGenre = getValueWrapper(libVLC.getMeta(libvlc_meta_Genre), UnknownStringType.Genre);
+ mAlbum = getValueWrapper(libVLC.getMeta(libvlc_meta_Album), UnknownStringType.Album);
+ mNowPlaying = libVLC.getMeta(libvlc_meta_NowPlaying);
+ mArtworkURL = libVLC.getMeta(libvlc_meta_ArtworkURL);
+ if (mNowPlaying != null) {
+ mArtist = mNowPlaying;
+ mAlbum = "";
+ }
}
public String getFileName() {
@@ -368,7 +401,10 @@ public class Media implements Comparable<Media> {
}
public String getSubtitle() {
- return mType != TYPE_VIDEO ? mArtist + " - " + mAlbum : "";
+ return mType != TYPE_VIDEO ?
+ mNowPlaying != null ?
+ mNowPlaying
+ : mArtist + " - " + mAlbum : "";
}
public String getArtist() {
diff --git a/vlc-android/src/org/videolan/vlc/audio/AudioService.java b/vlc-android/src/org/videolan/vlc/audio/AudioService.java
index bf4e85f..654e8aa 100644
--- a/vlc-android/src/org/videolan/vlc/audio/AudioService.java
+++ b/vlc-android/src/org/videolan/vlc/audio/AudioService.java
@@ -524,6 +524,13 @@ public class AudioService extends Service {
case EventHandler.MediaPlayerTimeChanged:
// avoid useless error logs
break;
+ case EventHandler.MediaMetaChanged:
+ service.getCurrentMedia().updateMeta(service.mLibVLC);
+ service.setUpRemoteControlClient();
+ service.executeUpdate();
+ service.showNotification();
+ service.updateRemoteControlClientMetadata();
+ break;
default:
Log.e(TAG, String.format("Event not handled (0x%x)", msg.getData().getInt("event")));
break;
--
2.1.0
More information about the Android
mailing list