2010-12-01 45 views
3

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

一个网址我试图打的一个例子是:http://network.absoluteradio.co.uk/core/audio/wmp/live.asx?service=vr

有什么特别的我为了得到vlcj玩这种流呢?我无法在API中找到任何帮助。 (假设它可以,因为它可以通过VLC媒体播放器播放!)

非常感谢

回答

1

好的,您提供给我们的MRL http://network.absoluteradio.co.uk/core/audio/wmp/live.asx?service=vr是一个MMS服务器,它可以提取可能包含至少一个子项的ASX(XML)元文件。

http://all-streaming-media.com/faq/streaming-media/Metafiles-ASX-Advanced-Stream-Redirector.htm

为了能够播放流媒体的这种类型,并经过各个子项,你需要做下面的代码片段:

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(); 

对于例如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(false); 
VideoPanel.getMediaPlayer().setPlaySubItems(false); 
VideoPanel.getMediaPlayer().stop(); 

为了更好的说明,请参阅:http://code.google.com/p/vlcj/wiki/HowToHandleYouTubeMedia

+0

这是我最终去了,并解决它成功地工作! – clamped 2011-11-16 21:52:23

0

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