我无法将我的mp3转换为wavs,以便使用Java更轻松地进行数据操作。我可以打开命令提示符并在调试时复制存储在s中的确切字符串,这将正确创建wav文件。代码如下。通过这种方式构建字符串,我可以使用ffmpeg将几个mp3分成基于轨道列表的单独轨道。我重新安装了Windows 10,所以我假设它与此有关。我必须改变一个设置吗?为什么它会在命令提示符下运行,而不是在Java中运行?
package mp3towav;
import java.io.File;
import java.io.IOException;
public class Mp3towav {
// mp3 folder
public static final String MP3FOLDER = "C:\\Users\\Al\\Documents\\Sounds\\PokemonOST\\YellowOST\\MP3";
public static void main(String[] args) throws IOException {
// Gets the mp3 files and converts them to wav
File mp3folder = new File(MP3FOLDER);
String[] mp3s = mp3folder.list();
File f;
String s;
for(int i = 0; i < mp3s.length; i++) {
f = new File(mp3s[i]);
s = ("ffmpeg -i " + MP3FOLDER + "\\" + f.getName() + " " + (MP3FOLDER + "\\" + f.getName()).replaceAll("MP3", "WAV").replaceAll("mp3", "wav"));
Runtime.getRuntime().exec(s);
System.out.println("test");
}
}
}
编辑:
所以我从来没有让Java使用PATH,而是添加了Java中ffmpeg可执行文件的绝对路径。
我必须添加包含ffmpeg.exe的bin的完整路径,而不是让Java依赖于Windows中的PATH变量,即使ffmpeg在CMD窗口中正常工作。