如果这些特定/简单的问题已经得到解答,我真的很抱歉,我似乎无法绕过我遇到的这个问题。导入和连接波形文件
目前,我正在尝试为我的高级独立研究程序设计语言课程编写一个程序,该课程涉及到.wav文件的lot。我正在使用Eclipse Neon,并且正在使用Java。目前,我的问题是正确导入.wav文件,然后正确连接几个。
下面是使用这些文件的类的代码。随意在这里批评我的方法,我完全失败。
private ArrayList<String> paths;
public audioGen(){
paths = new ArrayList<String>();
}
public ArrayList<String> formList(int l, String type) {
Random a = new Random();
int b;
if(type.equals("A")){
for(int x=0; x<l;x++){
b = a.nextInt(14);
paths.add("/res/"+Integer.toString(b)+".wav");
}
}
return paths;
}
@SuppressWarnings("resource")
public void soundAppend(ArrayList<String> pathList) throws IOException, UnsupportedAudioFileException {
AudioInputStream clip1 = null;
for(String path1 : pathList){
if (clip1 == null){
clip1 = AudioSystem.getAudioInputStream(new File (path1));
continue;
}
AudioInputStream clip2 = AudioSystem.getAudioInputStream(new File(path1));
AudioInputStream appendFiles = new AudioInputStream(new SequenceInputStream(clip1, clip2), clip1.getFormat(), clip1.getFrameLength() + clip2.getFrameLength());
clip1 = appendFiles;
}
AudioSystem.write(clip1, AudioFileFormat.Type.WAVE, new File("src\\audio\\completed.wav"));
clip1.close();
}
public void readList(ArrayList<String> l){
for(String s : l)
System.out.println(s);
}
我已经设置了文件夹,以便/ RES /是包AUDIOWORK下构建路径,并在COM/RADE/GEN /源文件。这是他们没有足够接近的问题,还是我需要创建audioInputStreams来使用它们;如果是这样的话,我会如何连接它们。
非常感谢你的进步,再次对不起,如果这回答了别的地方。我花了两个星期的时间试图弄清楚这是如何工作无济于事。 :/
编辑:我想指定这是我近3年前冲的一个项目的重写,所以有很多事情,我目前没有刷新 - 特别是代码方法soundAppend
。
你可以通过创建'SequenceInputStream'创建'AudioInputStream'。那么究竟是什么问题呢?你问这是否是正确的做法?它工作吗?你有例外吗? – bc004346
是的,它每次吐出的异常是'java.io.FileNotFoundException:/res/0.wav(系统找不到指定的文件)' –
该路径在'formList'中提及,并且不显示如何那是用过的。但是错误信息不够清楚吗?该文件不存在。 – weston