Я пытаюсь запустить эту команду sox, чтобы смешать несколько аудиовходов из моей программы, используя:
String command = "sox C:/serverFolder/a1.wav -p pad 0 0 | sox - -m C:/serverFolder/a2.wav -p pad 10.0 0 | sox - -m C:/serverFolder/a3.wav -p pad 0 0 | sox - -m C:/serverFolder/a4.wav -p pad 20.0 0 | sox - -m -v 0 C:/serverFolder/blank.wav C:/serverFolder/audioFile.wav";
Process proc = Runtime.getRuntime().exec(command);
я получил
sox FAIL pad: usage: {length[@position]}
если я запускаю эту команду в свой cmd, она работает нормально. Я попробовал несколько подходов, подобных предложенному здесь со списком: Использование Java ProcessBuilder для запуска SoX< /а>
Или тот, который предлагается здесь, используя абсолютный путь к sox Выполнение команд Sox из кода Java
Поскольку код отлично работает в cmd, я предполагаю, что плохо отправляю его из java. есть идеи?
String[] command = new String[]{"cmd.exe","/c sox C:/serverFolder/a1.wav -p pad 0 0 | sox - -m C:/serverFolder/a2.wav -p pad 10.0 0 | sox - -m C:/serverFolder/a3.wav -p pad 0 0 | sox - -m C:/serverFolder/a4.wav -p pad 20.0 0 | sox - -m -v 0 C:/serverFolder/blank.wav C:/serverFolder/audioeFile.wav"}
Process proc = Runtime.getRuntime().exec(command);
и работал нормально. Спасибо за ваше время! - person bruno   schedule 29.11.2013