Android:如何使用libvlc获取元数据?

时间:2015-12-11 07:50:30

标签: android libvlc

Create a videoplayer with the LibVLC for android的帮助下,我成功地在Android应用程序中使用vlclib从其中一个icecast服务器播放在线流媒体,但我现在面临一个问题。

如何使用vlcMediaPlayer对象检索元数据(歌曲标题,歌手,专辑等):

String url = "http://82.196.0.163:8000/dj.ogg";
LibVLC vlcMediaPlayer = VLCInstance.getLibVlcInstance();
vlcMediaPlayer.eventVideoPlayerActivityCreated(true);
vlcMediaPlayer.playMRL(url);

1 个答案:

答案 0 :(得分:0)

您似乎使用了不同的流方法,我不知道那个,但如果您使用libvlc的MediaPlayer来播放远程流,这是一个相当简单的任务。

Media使用的MediaPlayer对象可以设置EventListeners。一种事件类型是Media.Event.MetaChanged,它会在歌曲发生变化时触发,服务器会发送新的元数据:

mLibVLC = new LibVLC();
mMediaPlayer = new MediaPlayer(mLibVLC);

Media media = new Media(mLibVLC, "http://82.196.0.163:8000/dj.ogg");

media.setEventListener(new Media.EventListener() {
     @Override
     public void onEvent(Media.Event event) {
         if (event.type == Media.Event.MetaChanged) {
             //New metadata received
             Media media = mMediaPlayer.getMedia();
             String songMetadata = media.getMeta(Media.Meta.NowPlaying);
         }
    }
});

mMediaPlayer.setMedia(media);
mMediaPlayer.play();

NowPlaying以外的其他键也存在,但到目前为止我使用的每个IceCast服务器只提供了一个,其中包含艺术家和歌曲标题的数据作为单个字符串。