0
的C#代碼來執行此GSM編碼的WAV用進程來運行SOX是:
Console.WriteLine(Cfg.SoxPath); // bin/sox.exe
Console.WriteLine(args); // A rather long argument
var startInfo = new ProcessStartInfo();
startInfo.FileName = Cfg.SoxPath;
startInfo.Arguments = args;
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
startInfo.UseShellExecute = false;
startInfo.CreateNoWindow = false;
using (Process soxProc = Process.Start(startInfo))
{
soxProc.WaitForExit();
}
代碼的輸出是:
bin\sox.exe
"D:\VoiceRecorder Soundfiles Storage\MP3 Storage\2012-12-05\227\1\20121205_203436_2103c60a0000134850bfa1bd2c99_8075598.mp3" -c 1 -r 8000 -e gsm-full-rate "temp\227_20120901\SW120006_349990195665213_040154700_20121205203436_20.wav"
bin\sox.exe FAIL formats: can't open input file `8000': No such file or directory
什麼導致命令失敗?
需要考慮的事項
- 該命令運行完全當從CMD提示符
- 參數(
-c 1 -r 8000 -e gsm-full-rate
)直接執行的程序是一個SQL服務器取回 - 小的改動的參數(例如,替換
-e
與--encoding
)可能會更改錯誤消息 - 嘗試.NET 3.0和4.0
- 錯誤消息甚至包括了字符不是參數的一部分(
can't open input file 'ûg'
) - 相同的參數總是導致相同的錯誤
嘗試單引號。 – leppie
@leppie單引號產生了同樣的錯誤,我害怕。值得一試 – ANisus