从java运行livestreamer

时间:2015-01-06 20:19:16

标签: java cmd twitch

我尝试制作一个小程序,允许我搜索抽搐流并在livestreamer和vlc中打开。

所以我有这个方法应该运行livestreamer。

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运行它工作正常。我怎样才能使它发挥作用?

提前感谢您的帮助,对不起我的英语。

1 个答案:

答案 0 :(得分:0)

当您通过Runtime.getRuntime()。exec()运行某个应用程序时,您需要等到应用程序终止。当runLiveStreamer()方法结束时,我正在终止livestreamer。

更新了代码(这个while循环正在工作,直到livestreamer终止,如果你不需要输出你也可以使用proc.wait())

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);    
      }