Vlcj 本机发现在 Raspberry Pi3 B+ 上失败

Vlcj native discovery fails on Raspberry Pi3 B+

我有 java 代码需要在 Raspberry Pi 3 B+ 和 Raspbian 上使用 Vlcj 库。但是当使用 NativeDiscovery.discover() 启动时,我收到一条 "no vlc library found" 消息。我尝试在“/usr/bin/”上使用 addSearchPath() 但没有成功。

我该如何解决我的问题?谢谢

您的 JVM 需要知道在哪里可以找到 libvlc.so 和 VLC 插件。

它们在“/usr/bin”中不是

尝试解决这个问题的方法不止一种,最简单的可能是使用 LD_LIBRARY_PATH.

找到包含 libvlc.so 的目录后,您可以在启动应用程序时指定 LD_LIBRARY_PATH 环境变量。

在我的 Pi 上,libvlc.so 在 /usr/lib/arm-linux-gnueabihf 中,所以类似于(类路径中给定的 jar 文件只是示例):

LD_LIBRARY_PATH=/usr/lib/arm-linux-gnueabihf java -cp vlcj.jar:jna.jar:jna-platform.jar:your-app.jar

这可能足以让它工作,也可能不会。 LibVlc 可能会抱怨找不到它的插件。

如果是,找到插件的安装位置(在libvlc.so所在的目录下应该有一个名为"plugins"的目录)。

在我的 Pi 上,这些在 /usr/lib/arm-linux-gnueabihf/vlc/plugins.

现在您将 VLC_PLUGIN_PATH 设置为指向该目录:

LD_LIBRARY_PATH=/usr/lib/arm-linux-gnueabihf VLC_PLUGIN_PATH=/usr/lib/arm-linux-gnueabihf/vlc/plugins java -cp vlcj.jar:jna.jar:jna-platform.jar:your-app.jar

如果需要,您可以在配置文件或其他任何地方设置这些环境变量,而不是在命令行中指定。

vlcj 的本地发现机制通常会尝试为您解决所有这些麻烦,但它(目前)不知道 Raspberry Pi 所以您必须自己做。

vlcj 的下一个主要版本(将是 4.0.0)具有改进的本机发现机制。我在我的 Pi 上测试了这个的早期开发版本,它直接运行,没有任何上述。