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 に答える