Вопрос

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

Это было полезно?

Решение

Вы, вероятно, ищете VLCJ, это Java Wrapper для VLC. Это позволяет вам встраивать VLC Media Player в приложении Java и, таким образом, добавлять все ваши личные элементы управления.

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

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

Другие советы

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

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

В зависимости от того, что вы хотите в конечном итоге сделать, может быть, Gstreamer Java привязки Стоит взглянуть, который даст вам очень тонкий зернистый контроль о воспроизведении. И вы можете делать преобразования и все. У них также есть минималистичный пример пример видеоплеер для начала.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top