как контролировать VLC с помощью Java - PullRequest
6 голосов
/ 22 сентября 2010

Я хочу запустить программу с именем 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 ]

6 голосов
/ 06 августа 2011

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

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

6 голосов
/ 22 сентября 2010

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

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

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

0 голосов
/ 23 сентября 2010

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

...