Запустите VLC в Java и подключении к нему через емкостно-резистивный интерфейс

Я уже видел этот поток, но у меня все еще есть проблема: запуск vlc плеер в Java, Это появляется привязка Java для VLC, больше не находится в процессе активного развития и не поддерживает все возможное на командной строке так или иначе.

Учитывая следующий код, я не могу запустить VLC из JAVA-приложения на Mac OS 10.5.8 (Java 1.6) и затем соединиться с ним через емкостно-резистивный интерфейс через Терминал или другое JAVA-приложение.

public class Main {

public static void main(String[] args) {
    String s = null;


    try {
        //Process p = Runtime.getRuntime().exec("/Applications/VLC.app/Contents/MacOS/VLC -I telnet --telnet-host=localhost:4442 -I rc --rc-host=localhost:4444");
        //Process p = Runtime.getRuntime().exec("/Applications/VLC.app/Contents/MacOS/VLC -I rc --rc-host=localhost:4444");

        //ProcessBuilder pb = new ProcessBuilder("/Applications/VLC.app/Contents/MacOS/VLC","-I rc","--rc-host=localhost:4444");
        ProcessBuilder pb = new ProcessBuilder("/Applications/VLC.app/Contents/MacOS/VLC","-IRC","--rc-host=localhost:4444");
        Process p = pb.start();

        StreamGobbler errorGobbler = new StreamGobbler(p.getErrorStream(), false);
        StreamGobbler inputGobbler = new StreamGobbler(p.getInputStream(), false);
        errorGobbler.start();
        inputGobbler.start();

        System.out.println("Waiting: \n"+p.waitFor());       
        System.out.println("All done here");
        //p.destroy();
        //System.exit(0);

  } catch (IOException ioe) {
    ioe.printStackTrace();
  } catch (Exception ie) {
    ie.printStackTrace();
  }
}
}

class StreamGobbler extends Thread {
InputStream is;
boolean discard;
StreamGobbler(InputStream is, boolean discard) {
  this.is = is;
  this.discard = discard;
}
public void run() {
 try {
   InputStreamReader isr = new InputStreamReader(is);
   BufferedReader br = new BufferedReader(isr);
   String line=null;
   while ( (line = br.readLine()) != null)
     if(!discard)
       System.out.println(line);    
   }
 catch (IOException ioe) {
   ioe.printStackTrace();  
 }

} }

Вот JAVA-приложение с помощью Apache пакет Сети палаты общин, который я пытаюсь подключить к вышеупомянутому приложению, работающему на той же машине:

public class TelnetTest {
public static void main(String args[]) {


    TelnetClient tl = new TelnetClient();
    try {
        tl.connect("localhost", 4444);
        if(tl.isConnected()) {
            System.out.println("Connected successfully!");

            BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(tl.getOutputStream()));
            bw.write("quit");
            bw.flush();

        } else {
            System.err.println("Problem with connection");
        }
    } catch(Exception e) {
        System.err.println("Telnet connection threw an exception: "+e.getMessage());
    }
}
}

Последнее приложение хорошо работает, если я запускаю VLC использование команд из первого приложения в Терминале. Аналогично, я не могу подключить к первому приложению от Терминального использования "telnet localhost 4444" в Терминале.

Единственная разница, которую я могу найти, находится в выводе от VLC. При выполнении в терминале:

[0x2786e8] main interface error: no interface module matched "globalhotkeys,none"
[0x2786e8] main interface error: no suitable interface module
[0x201b28] main libvlc error: interface "globalhotkeys,none" initialization failed
Remote control interface initialized. Type `help' for help.

При выполнении с помощью главного JAVA-приложения:

[0x4009178] main interface error: no interface module matched "globalhotkeys,none"
[0x4009178] main interface error: no suitable interface module
[0x2017a8] main libvlc error: interface "globalhotkeys,none" initialization failed
[0x4009178] main interface error: no suitable interface module
[0x2017a8] main libvlc error: interface "default" initialization failed

Кто-либо может помочь мне здесь? Я в замешательстве.Большое спасибо.

5
задан Community 23 May 2017 в 12:30
поделиться

1 ответ

Решение найдено на другом форуме: http://forums.sun.com/thread.jspa?threadID=5145675

Вы должны передать аргумент "--rc-fake-tty" VLC, очевидно, при работе под Linux или Mac.

0
ответ дан 14 December 2019 в 19:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: