我正在尝试让VLCJ为从HTTP流中播放的mp3文件做一个可视化工具。当我流式传输一个视频时,就会显示视频。但是当音频播放时,什么也没发生。
这是我在客户端的代码
EmbeddedMediaPlayerComponent empc = new EmbeddedMediaPlayerComponent();
String[] op = {"audio-visual=visual", "effect-list=spectrum", "effect-width=800", "effect-height=80"};
empc.mediaPlayer().media().play("http://127.0.0.1:" + port, op);
有很多代码,但是没有与VLCJ直接相关的代码。如果您认为有必要,我可以发布服务器代码,但是我认为不需要,因为媒体可以完美地到达客户端。因此,音频和视频工作正常,但可视化器根本不显示。任何帮助,将不胜感激。
首先,检查是否在操作系统发行版上安装了可视化插件。
我正在使用Linux Mint,并且在安装VLC时默认未安装这些插件。
执行此操作:
sudo apt install vlc-plugin-visualization
第二,似乎您必须在MediaPlayerFactory
上设置可视化选项,而不是在媒体播放器上调用play()
时传递它们。
例如:
String[] options = new String[] {"--audio-visual=visual", "--effect-list=scope,vuMeter,spectrometer,spectrum"};
factory = new MediaPlayerFactory(options);
mediaPlayer = factory.mediaPlayers().newEmbeddedMediaPlayer();
此示例在从中创建媒体播放器之前配置工厂,您可以使用任何媒体播放器工厂创建方法。
可视化效果随窗口大小缩放,我无法获得width和height参数来执行任何操作。
这对音频没问题。
[如果您播放视频,则视频将进入应用程序中嵌入的视频表面,并且VLC将打开一个新的单独窗口以显示可视化效果(可能您不希望这样做)。