5

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

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 绑定,但我不知道它在这项工作中是如何工作的。

4

3 回答 3

6

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

你可以让它在多个实例上可靠地工作,但要做到这一点,你需要在进程外使用它。请参阅此处了解我最初的尝试。设置起来需要一些工作,但是一旦开始,事情似乎工作得很好。

于 2011-08-05T22:12:43.930 回答
5

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

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

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

于 2010-09-22T10:51:58.483 回答
1

根据您最终想要完成的任务,gstreamer Java 绑定可能值得一看,它可以让您对播放进行非常精细的控制。你可以做转换和一切。他们还有一个简约的视频播放器示例应用程序可以帮助您入门。

于 2010-09-23T08:55:34.990 回答