我正在尝试从java代码运行SoX命令但遇到一些困难。安装了SoX(SOund eXchange)软件,但不是从命令提示符运行程序,我想运行程序并通过我的java代码获得结果。我想要运行的命令是:
Sox -m sounda.wav soundb.wav final.wav
以下是我用来测试的示例代码:
package soxcmd;
import java.io.IOException;
public class SoxCmd {
public static void main(String[] args) throws IOException {
String path = "c:\\sox";
String[] mystring = {path + "\\sox -m", path + "\\fdir\\sounda.wav", path + "\\fdir\\soundb.wav", path + "\\bdfiles\\final.wav"};
Runtime.getRuntime().exec(mystring);
}
}
我将非常感谢你的帮助。感谢。
答案 0 :(得分:1)
我从http://www.linglom.com/2007/06/06/how-to-run-command-line-or-execute-external-application-from-java/
的灵感中找到了解决这个问题的方法我绝对使用“c:\ sox \ sox.exe”调用sox 我也使用绝对路径,因为它似乎相对路径不起作用,我发送整个字符串,就像我在命令行一样。所以我有
Process pr;
pr = rt.exec("c:\\sox\\sox.exe c:\\sox\\files\\filea.wav c:\\sox\\files\\fileb.wav c:\\sox\\files\\filec.wav");
BufferedReader input = new BufferedReader(new InputStreamReader(pr.getInputStream()));
现在正在运作。感谢。
答案 1 :(得分:0)
我在sox周围编写了一个小包装应用程序。它可以在Github上免费获得。看,也许它会满足您的需求。该项目仍处于早期阶段,但也许你会发现它很有用。