Java 在vlcj中播放实时http流

Java 在vlcj中播放实时http流,java,audio-streaming,vlc,libvlc,vlcj,Java,Audio Streaming,Vlc,Libvlc,Vlcj,我正在尝试使用vlcj在一个项目中播放实况互联网广播电台。我已经玩了几个小时的一些示例程序,但是我无法从URL获得示例程序或我玩过的程序来播放流 我尝试播放的URL示例如下: 为了让vlcj播放这条流,我需要做什么特别的事情吗?我在API中找不到任何帮助。(假设可以,因为它可以通过VLC媒体播放器播放!) 非常感谢您不能使用http直接播放此类链接。您必须使用无线电台路由器的端口号。这是因为如果我想在我的工作场所接收来自互联网的家庭实时视频流,我会在url上键入以下内容:dns服务器ip地址:8

我正在尝试使用vlcj在一个项目中播放实况互联网广播电台。我已经玩了几个小时的一些示例程序,但是我无法从URL获得示例程序或我玩过的程序来播放流

我尝试播放的URL示例如下:

为了让vlcj播放这条流,我需要做什么特别的事情吗?我在API中找不到任何帮助。(假设可以,因为它可以通过VLC媒体播放器播放!)


非常感谢

您不能使用http直接播放此类链接。您必须使用无线电台路由器的端口号。这是因为如果我想在我的工作场所接收来自互联网的家庭实时视频流,我会在url上键入以下内容:dns服务器ip地址:8080 8080是我在路由器上打开的端口号。

好的,您提供给我们的MRL是一个MMS服务器,它可以提取ASX(XML)元文件,其中可能至少包含一个子项

要能够播放这种类型的流媒体并浏览每个子项,您需要执行以下代码段:

VideoPanel.getMediaPlayer().setRepeat(true);
VideoPanel.getMediaPlayer().setPlaySubItems(true);
VideoPanel.getMediaPlayer().prepareMedia(media, options);

try {
    Thread.sleep(2000);
} catch (InterruptedException e) {
    e.printStackTrace();
}

for(String s: VideoPanel.getMediaPlayer().subItems()) System.out.println(s);
VideoPanel.getMediaPlayer().play();
VideoPanel.getMediaPlayer().setRepeat(false);
VideoPanel.getMediaPlayer().setPlaySubItems(false);
VideoPanel.getMediaPlayer().stop();
对于上面的示例MRL,它将列出所有子项,如下所示:

http://wms.absoluteradio.co.uk/g1/absoluteradio.co.uk/prerolls/ar_account_1310455302_hi.wma
mms://wms.absoluteradio.co.uk/absoluteradio.co.uk/vr_lo?u=
http://wms.absoluteradio.co.uk/absoluteradio.co.uk/vr_lo?u=
mmsu://wms.absoluteradio.co.uk/absoluteradio.co.uk/vr_lo?u=
mmst://wms.absoluteradio.co.uk/absoluteradio.co.uk/vr_lo?u=
mms://wms.absoluteradio.co.uk/absoluteradio.co.uk/prerolls/problems_lo.wma
要停止播放它们,请设置以下代码段:

VideoPanel.getMediaPlayer().setRepeat(true);
VideoPanel.getMediaPlayer().setPlaySubItems(true);
VideoPanel.getMediaPlayer().prepareMedia(media, options);

try {
    Thread.sleep(2000);
} catch (InterruptedException e) {
    e.printStackTrace();
}

for(String s: VideoPanel.getMediaPlayer().subItems()) System.out.println(s);
VideoPanel.getMediaPlayer().play();
VideoPanel.getMediaPlayer().setRepeat(false);
VideoPanel.getMediaPlayer().setPlaySubItems(false);
VideoPanel.getMediaPlayer().stop();

有关更好的解释,请参阅:

这是我最终选择的解决方案,它成功地工作了!