如何通过java控制VLC

时间:2010-09-22 10:40:09

标签: java vlc vlcj

我想在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绑定,但我不知道它对这项工作有什么作用。

3 个答案:

答案 0 :(得分:6)

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

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

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

答案 1 :(得分:6)

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

您可以使用多个实例可靠地运行它,但为此您需要在进程外使用它。我最初的尝试见here。设置起来有点工作,但一旦开始,事情看起来效果非常好。

答案 2 :(得分:0)

根据您最终要完成的内容,gstreamer Java bindings值得一看,这将为您提供关于播放的非常精细的控制。你可以做转换和一切。他们还有一个简约的视频播放器示例应用程序,可以帮助您入门。