как управлять VLC с помощью java

Я хочу запустить программу под названием в 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, но я не знаю, как это работает для этой работы.

3 ответов


вы, вероятно, ищете VLCJ, это Java-оболочка для VLC. Он позволяет встроить VLC media player в приложение java и, таким образом, добавить все ваши личные элементы управления.

(обратите внимание, что для пользовательских приложений это нормально, но библиотека VLCJ не идеальна, вы можете появляется несколько проблем.)

изменить: Для моего проекта Я видел утечки памяти и проблемы с длительными программами (несколько экземпляров в течение нескольких часов). Особенно несколько экземпляров не работает в сочетании с некоторыми параметрами компиляции (которые включены по умолчанию).


VLCj это то, что вам нужно, да - это, по сути, прямая Java-оболочка вокруг libvlc. Если вы используете его в процессе (особенно если вы используете несколько игроков в процессе), вы иногда увидите сбои VM - это не ошибка VLCJ, а libvlc, и собственные библиотеки, которые он использует под ними, имеют некоторые тонкие ошибки потоковой передачи, которые раскрывают эти проблемы.

вы можете заставить его работать надежно с несколькими экземплярами, но для этого вам нужно использовать его вне процесса. Видеть здесь для моих первоначальных попыток в этом. Это немного работы, чтобы настроить, но когда-то все работает очень хорошо.


в зависимости от того, что вы хотите в конечном итоге достичь возможно привязки Java gstreamer стоит посмотреть, что даст вам очень мелкозернистый контроль над воспроизведением. И вы можете делать конверсии и все такое. Они также имеют минималистичный пример приложения видеоплеер, чтобы вы начали с.