如何通过java控制VLC

我想在java运行一个名为VLC的程序并在运行时控制它,例如,如果用户单击❚❚►►按钮,我会执行特定的合适操作。

我通过这段代码运行VLC

 try { Runtime rt = Runtime.getRuntime(); Process p = rt.exec(VLCProgramAddFile + " udp://@:" + listeningPort); OutputStream out = p.getOutputStream(); InputStream in = p.getInputStream(); p.waitFor(); System.out.println("End of VLC"); } catch (Exception e) { System.out.println("error in running VLC"); } 

我听说过Java绑定,但我不知道它是如何工作的。

您可能正在寻找VLCJ,这是VLC的java包装器。 它允许您将VLC媒体播放器嵌入到Java应用程序中,从而添加所有个人控件。

(请注意,对于用户应用程序,这很好,但VLCJ库并不完美,您可能会弹出几个问题。)

编辑:对于我的项目,我看到内存泄漏和长时间运行程序的问题(几个小时的多个实例)。 特别是多个实例不能与某些编译选项(默认情况下处于启用状态)结合使用。

VLCj就是你所追求的 – 它本质上是一个围绕libvlc的直接Java包装器。 如果你在进程中使用它(特别是如果你在进程中使用多个播放器),你有时会看到VM崩溃 – 这不是VLCJ的错,而是libvlc,它在下面使用的本机库有一些微妙的线程错误暴露了这些问题。

您可以使用多个实例使其可靠地工作,但为此您需要在进程外使用它。 请参阅此处了解我最初的尝试。 设置起来有点工作,但一旦开始,事情看起来非常好。

根据你想要最终实现的目标, gstreamer Java绑定值得一看,它将为你提供关于播放的非常精细的控制。 你可以做转换和一切。 他们还有一个简约的video播放器示例应用程序,以帮助您入门。