2015-12-11 19 views
1

随着Create a videoplayer with the LibVLC for android的帮助下,我成功地从Android应用程序使用vlclib的的Icecast服务器的一个玩在线流媒体,但我现在面临的一个问题。Android:如何使用libvlc获取元数据?

我怎样才能检索到像(歌名,歌手,专辑....等)使用vlcMediaPlayer对象的元数据:

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

你可以举个例子或者多描述一下吗?到目前为止,我不太了解这个问题。 – Trilarion

+0

@Trilarion:我编辑了这个问题,请再看一遍。 – techbrainless

+0

编辑过的问题对我来说看起来很好。不幸的是,我无法帮助你。 – Trilarion

回答

0

你似乎以用于流不同的方法,我不知道关于这一点,但如果您使用libvlc的MediaPlayer播放远程流,则这是一项相当简单的任务。

通过MediaPlayer使用的Media对象可以具有设置事件侦听器。一个事件类型是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服务器下发的那一个,与数据由艺术家和歌曲标题组成一个单独的字符串。

相关问题