将多个音频文件加入单个文件

时间:2015-11-14 03:48:27

标签: java file audio

我使用了Join two WAV files from Java中的代码。我测试了它,但它只能在没有循环的情况下工作。我现在做了一个循环来附加多个音频文件,如下所示:

        AudioInputStream clip1 = null, clip2 = null;
        for (int i = 1; i < fileAudio.size(); i++){
            try {
                if (i == 1) {
                    clip1 = AudioSystem.getAudioInputStream(new File("audio/" + fileAudio.get(0))); 
                }else{
                    clip1 = AudioSystem.getAudioInputStream(new File("merged.wav"));
                }
                clip2 = AudioSystem.getAudioInputStream(new File("audio/" + fileAudio.get(i)));   

                AudioInputStream appendedFiles = 
                                new AudioInputStream(
                                    new SequenceInputStream(clip1, clip2),     
                                    clip1.getFormat(), 
                                    clip1.getFrameLength() + clip2.getFrameLength());
                AudioSystem.write(appendedFiles,
                                AudioFileFormat.Type.WAVE,
                                new File("merged.wav"));
                System.out.println("Appending audio:" + clip1.getFrameLength());
                clip1.close();
                clip2.close();
                appendedFiles.close();

            } catch (Exception e) {
                e.printStackTrace();
            }
        }

给出的结果是组合的音频文件的正确长度,但声音仅来自最后一个音频文件。这意味着它并没有真正附加文件的音频。

0 个答案:

没有答案