2015-01-06 2 views
0

나는 작은 스트림을 검색하고 라이브 스트림 및 vlc에서 하나를 열 수있는 작은 자바 프로그램을 만들려고합니다.자바에서 라이브 러스터 실행

그래서 나는이 방법을 통해 살아있는 사람들을 움직여야합니다.

public static void runLiveStreamer(String channel, String quality) throws IOException{ 

     String cmd = new String("livestreamer.exe twitch.tv/" + channel + " " + quality); 

     System.out.println(cmd); 

     Process proc = Runtime.getRuntime().exec(cmd); 

     return; 
} 

코드를 실행해도 아무런 변화가 없으며 예외가 발생하지 않거나 작동하지 않습니다. 아시다시피 나는 명령을 실행하는 코드를 추가로 가지고 있습니다. 내가 cmd를 통해 그것을 잘 작동합니다. 어떻게 작동시킬 수 있습니까?

미리 감사드립니다. 내 영어로 죄송합니다.

답변

0

Runtime.getRuntime(). exec()를 통해 일부 응용 프로그램을 실행하면 응용 프로그램이 종료 될 때까지 기다려야합니다. runLiveStreamer() 메서드가 끝났을 때 라이브 스트림을 종료했습니다.

업데이트 된 코드를 사용하여 입력 스트림에서 읽고

public static void runLiveStreamer(String channel, String quality) throws IOException{ 

     String[] cmd = new String[]{"livestreamer.exe", "twitch.tv/"+channel, quality}; 

     Process proc = Runtime.getRuntime().exec(cmd); 

     InputStreamReader isr = new InputStreamReader(proc.getInputStream()); 
     BufferedReader br = new BufferedReader(isr); 
     String line=null; 
     while ((line = br.readLine()) != null) 
      System.out.println(line);  
     } 
+0

(이 while 루프가 전까지 livestreamer, 당신은 또한 당신이 출력을 필요가없는 경우 proc.wait()를 사용할 수 종료하고있다). 확실합니까? – Gangnus

관련 문제