在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);
答案 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服务器只提供了一个,其中包含艺术家和歌曲标题的数据作为单个字符串。