如果已经回答了这个特定/简单的事情,我真的很抱歉,我似乎无法解决我遇到的这个问题。
目前,我正在尝试为我的高级独立研究编程语言课编写一个程序,该课程涉及.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来使用它们;如果是这样,我将如何从那里连接它们。
非常感谢高级,如果在其他地方得到了解答,请再次对不起。我花了两周的时间试图弄清楚这是如何工作无济于事的。 :/
编辑:我想指出这是我近三年前匆匆忙忙的一个项目的重写,所以我有很多东西,我目前还没有刷新 - 特别是代码对于soundAppend
方法。
答案 0 :(得分:0)
问题在于获取文件的正确路径。由于您提到已将资源文件夹添加到类路径中,因此应该可以:
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);
Url url = this.getClass().getResource(Integer.toString(b)+".wav");
paths.add(url.toString());
}
}
return paths;
}