1

我正在尝试从 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); 
}

}

我会感谢你在这方面的帮助。谢谢。

4

2 回答 2

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

它现在正在工作。谢谢。

于 2013-01-20T18:55:45.673 回答
0

我围绕 sox 编写了一个小型包装应用程序。它在 Github 上免费提供。看,也许它会满足你的需求。该项目仍处于早期状态,但也许您会发现它很有用。

GitHub 上可用的 soundeXchange 的 Java 包装器

于 2016-03-02T21:39:25.517 回答