VLCJ 无法在正常安装中找到插件
VLCJ cant find plugins in normal installation
我的 VLC.exe 工作正常,但有一点延迟。但是我的简单 VLCJ 代码不起作用。
import javax.swing.JPanel;
import com.sun.jna.NativeLibrary;
import javax.swing.JFrame;
import uk.co.caprica.vlcj.component.EmbeddedMediaPlayerComponent;
import uk.co.caprica.vlcj.runtime.RuntimeUtil;
public class VideoPanel extends JPanel {
private static final String NATIVE_LIBRARY_SEARCH_PATH = "C:/Program Files/VideoLAN/VLC";
private EmbeddedMediaPlayerComponent mediaPlayerComponent;
public VideoPanel() {
NativeLibrary.addSearchPath(RuntimeUtil.getLibVlcLibraryName(), NATIVE_LIBRARY_SEARCH_PATH);
mediaPlayerComponent = new EmbeddedMediaPlayerComponent();
this.add(mediaPlayerComponent);
}
public static void main(String args[]){
JFrame frame = new JFrame();
frame.add(new VideoPanel());
frame.setBounds(100, 100, 800, 450);
frame.setVisible(true);
}
}
我正在使用 64 位 java 1.8.0_60。我在 Windows 10 64 位上使用 vlc 2.2.4 64 位。
我的错误信息是这样的。
[00000000018bbbb0] 核心 libvlc 错误:找不到插件!检查您的 VLC 安装。
线程 "main" java.lang.RuntimeException 中的异常:无法初始化 libvlc。
这通常是由于在创建 MediaPlayerFactory 时传递了无效的 vlc 选项或 libvlc 无法找到所需的插件造成的。
如果 libvlc 无法找到所需的插件,以下说明可能会有所帮助:
在下面的文本中表示包含 "libvlc.dll" 和 "libvlccore.dll" 的目录的名称,表示包含 vlc 插件的目录的名称...
要使 libvlc 正常运行,vlc 插件必须可用,有许多不同的方法可以实现:
1.确保插件安装在“/plugins”目录中,正常的vlc安装应该是这样的。
2.设置VLC_PLUGIN_PATH操作系统环境变量指向“”.
日志中可能提供更多信息。
在 uk.co.caprica.vlcj.player.MediaPlayerFactory.(MediaPlayerFactory.java:300)
在 uk.co.caprica.vlcj.player.MediaPlayerFactory.(MediaPlayerFactory.java:259)
在 uk.co.caprica.vlcj.component.EmbeddedMediaPlayerComponent.onGetMediaPlayerFactory(EmbeddedMediaPlayerComponent.java:349)
在 uk.co.caprica.vlcj.component.EmbeddedMediaPlayerComponent.(EmbeddedMediaPlayerComponent.java:217)
在 VideoPanel.(VideoPanel.java:19)
在 VideoPanel.main(VideoPanel.java:31)
我该怎么办?
这个问题并不少见,尤其是在 Windows 平台上。
vlcj入门教程使用此代码查找原生库及其插件:
package tutorial;
import uk.co.caprica.vlcj.binding.LibVlc;
import uk.co.caprica.vlcj.discovery.NativeDiscovery;
public class Tutorial {
public static void main(String[] args) {
boolean found = new NativeDiscovery().discover();
System.out.println(found);
System.out.println(LibVlc.INSTANCE.libvlc_get_version());
}
}
这个 NativeDiscovery
class 封装了最常见情况下所需的一切,包括设置 VLC_PLUGIN_PATH 环境变量。
这是确保使用 vlcj 正确初始化 LibVLC 的推荐方法,所以请尝试一下。
我的 VLC.exe 工作正常,但有一点延迟。但是我的简单 VLCJ 代码不起作用。
import javax.swing.JPanel;
import com.sun.jna.NativeLibrary;
import javax.swing.JFrame;
import uk.co.caprica.vlcj.component.EmbeddedMediaPlayerComponent;
import uk.co.caprica.vlcj.runtime.RuntimeUtil;
public class VideoPanel extends JPanel {
private static final String NATIVE_LIBRARY_SEARCH_PATH = "C:/Program Files/VideoLAN/VLC";
private EmbeddedMediaPlayerComponent mediaPlayerComponent;
public VideoPanel() {
NativeLibrary.addSearchPath(RuntimeUtil.getLibVlcLibraryName(), NATIVE_LIBRARY_SEARCH_PATH);
mediaPlayerComponent = new EmbeddedMediaPlayerComponent();
this.add(mediaPlayerComponent);
}
public static void main(String args[]){
JFrame frame = new JFrame();
frame.add(new VideoPanel());
frame.setBounds(100, 100, 800, 450);
frame.setVisible(true);
}
}
我正在使用 64 位 java 1.8.0_60。我在 Windows 10 64 位上使用 vlc 2.2.4 64 位。
我的错误信息是这样的。
[00000000018bbbb0] 核心 libvlc 错误:找不到插件!检查您的 VLC 安装。 线程 "main" java.lang.RuntimeException 中的异常:无法初始化 libvlc。
这通常是由于在创建 MediaPlayerFactory 时传递了无效的 vlc 选项或 libvlc 无法找到所需的插件造成的。
如果 libvlc 无法找到所需的插件,以下说明可能会有所帮助:
在下面的文本中表示包含 "libvlc.dll" 和 "libvlccore.dll" 的目录的名称,表示包含 vlc 插件的目录的名称...
要使 libvlc 正常运行,vlc 插件必须可用,有许多不同的方法可以实现: 1.确保插件安装在“/plugins”目录中,正常的vlc安装应该是这样的。 2.设置VLC_PLUGIN_PATH操作系统环境变量指向“”.
日志中可能提供更多信息。
在 uk.co.caprica.vlcj.player.MediaPlayerFactory.(MediaPlayerFactory.java:300) 在 uk.co.caprica.vlcj.player.MediaPlayerFactory.(MediaPlayerFactory.java:259) 在 uk.co.caprica.vlcj.component.EmbeddedMediaPlayerComponent.onGetMediaPlayerFactory(EmbeddedMediaPlayerComponent.java:349) 在 uk.co.caprica.vlcj.component.EmbeddedMediaPlayerComponent.(EmbeddedMediaPlayerComponent.java:217) 在 VideoPanel.(VideoPanel.java:19) 在 VideoPanel.main(VideoPanel.java:31)
我该怎么办?
这个问题并不少见,尤其是在 Windows 平台上。
vlcj入门教程使用此代码查找原生库及其插件:
package tutorial;
import uk.co.caprica.vlcj.binding.LibVlc;
import uk.co.caprica.vlcj.discovery.NativeDiscovery;
public class Tutorial {
public static void main(String[] args) {
boolean found = new NativeDiscovery().discover();
System.out.println(found);
System.out.println(LibVlc.INSTANCE.libvlc_get_version());
}
}
这个 NativeDiscovery
class 封装了最常见情况下所需的一切,包括设置 VLC_PLUGIN_PATH 环境变量。
这是确保使用 vlcj 正确初始化 LibVLC 的推荐方法,所以请尝试一下。