当前位置: 首页 > 知识库问答 >
问题:

VLCJ无法在客户端使用http打开音频流

闾丘昊然
2023-03-14

我正在使用VLCJ在服务器和客户端之间进行音频流。服务器端全部设置为,一旦它运行,我就可以打开流,只需使用vlc本身,我就可以监听我在服务器上选择的任何文件。但是,在客户端,我正在执行以下操作:

String url = "http://127.0.0.1:5555";
MediaPlayerFactory mediaPlayerFactory = new MediaPlayerFactory();
HeadlessMediaPlayer mediaPlayer = mediaPlayerFactory.newHeadlessMediaPlayer();
mediaPlayer.startMedia(url);

但一点声音都没有。如果我在终端中运行vlchttp://127.0.0.1:5555,它会打开vlc,并播放服务器正在流式传输的音乐曲目,不会有任何问题。

最近,我发现问题出在路径上。通过使用system.out.println(MediaPlayer.MRL());显示它打开的是文件:///home/user/workspace/audioproject/HTTP%3a//127.0.0.1%3a5555而不是直接从HTTP地址(HTTP://127.0.0.1:5555)打开的MRL。

在这里,它展示了客户端如何打开流的示例。

对我做错了什么有什么猜测吗?还有解决办法吗?

提前道谢!

共有1个答案

林博厚
2023-03-14

您使用的VLC版本与您使用的vlcj版本不兼容。

LibVLC中有两种设置介质的方法,一种是用于设置“本地”文件介质,另一种是一个“位置”--本质上是一个URL:

libvlc_media_new_location(instance, media);
libvlc_media_new_path(instance, media);

在VLC的早期版本中,只需使用其中一个函数来设置媒体,不管它是基于本地文件的媒体还是URL。这个函数libvlc_media_new_path对这两种类型的介质都适用。

VLC的最新版本改变了这种情况(我不记得具体是哪一个版本)。

当时,由于VLC中的这种变化,vlcj被改为猜测媒体的类型(文件或URL)并调用适当的LibVLC函数。

因此,解决方案是使用兼容版本的VLC/VLCJ。

vlcj的变化是版本2.2.0,但当然我会推荐您使用vlcj的最新版本,在撰写本文时是3.0.1。

 类似资料:
  • 我正在做一个基于VLCJ流的项目。我查阅了VLCJ教程中关于如何从下面的代码创建服务器端的内容。客户端如何从服务器获取视频内容?我也编写了客户端代码,但它没有显示任何内容。 如有任何帮助,我们将不胜感激。谢谢. 服务器代码: } 客户端: 正如您在上面看到的,MediaPlayer.PlayMedia(publicServer)应该显示视频内容,但没有显示任何内容。JFrame只是空的。

  • 打开客户端 /** * * @param {String} _url 户动客户端后打开的url 不传默认唤起客户端 * @param {String} _clinet 默认打开手淘,取值为"tmall"时打开手机天猫 * @example * Tida.openClient(); */ Tida.openClient( _url, _clinet );

  • 问题内容: 在执行其他操作时,opencv可以正常工作。它可以打开图像并显示图像。但无法打开视频。 我用来打开视频的代码如下 但是执行时,它会输出如下错误消息 我和可以播放此视频,但opencv无法播放。 我已经安装和编解码器包。(使用) 我的ubuntu版本是。 我不确定是否是编解码器问题? 我已经使用或重建了opencv ,但它根本不影响问题。错误消息永远不会改变。 问题答案: 我将该文件转换

  • 我不确定这是否可能,我已经配置了一个icecast服务器并流媒体音乐,我想使用Java(或grails)创建一个web播放器。我设法让java web应用程序播放icecast正在流式播放的音乐,使用如下所示: 几句台词后,音乐开始播放,问题是,如果我用web应用程序关闭选项卡,音乐就会继续播放,我必须停止应用程序才能停止播放,但当我再次启动它并尝试再次播放时,这就像icecast服务器在后台继续

  • 我正在试用Twilio Android Quickstart,我已经完成了拨打外呼部分,但出于某种原因。我没收到音频。 任何帮助都将不胜感激。

  • 我正在尝试使用enuncicate v1.26.2 ant任务创建java客户端库。问题是,每次我尝试这样做时,我都会收到以下警告信息: 我已经检查了java-客户端发音jar是否在类路径上,并且发音甚至说它已经在输出中找到了它。 所以我不确定到底该怎么做。我尝试在谷歌上搜索,发现SO只有几个问题需要阐明,似乎没有一个回答我的问题。这是我的蚂蚁脚本,其中包含相关行: 注意:docs export被