【发布时间】:2012-11-03 03:05:04
【问题描述】:
我有这个简单的代码来连接两个 wav 文件。它非常简单,代码运行没有任何错误。但是输出文件有问题。生成的输出文件没有播放,令人惊讶的是它的大小只有 44 个字节,而我的输入文件“a.wav”和“b.wav”的大小都超过了 500Kb。
这是我的代码:
import java.io.File;
import java.io.IOException;
import java.io.SequenceInputStream;
import javax.sound.sampled.AudioFileFormat;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
public class WavConcat {
public static void main(String[] args) {
String wFile1 = "./sounds/a.wav";
String wFile2 = "./sounds/b.wav";
try {
AudioInputStream clip1 = AudioSystem.getAudioInputStream(new File(wFile1));
AudioInputStream clip2 = AudioSystem.getAudioInputStream(new File(wFile2));
AudioInputStream appendedFiles =
new AudioInputStream(
new SequenceInputStream(clip1, clip2),
clip1.getFormat(),
clip1.getFrameLength() + clip2.getFrameLength());
AudioSystem.write(appendedFiles,
AudioFileFormat.Type.WAVE,new File("./sounds/ab.wav"));
} catch (Exception e) {
e.printStackTrace();
}
}
}
【问题讨论】:
-
尝试了您的代码,对我来说效果很好。请按照@AndrewThompson 的建议检查两个文件的格式。 PS。 44字节是wav头的长度。
-
@AndrewThompson 原始样本只是从网上下载的。它们是从“a”到“b”和“0”到“9”的简单 mp3 声音。
-
@AndrewThompson 我尝试了一个名为 audacity(audio-editor) 的软件来解决问题。最后它正在工作。非常感谢所有的帮助。我很感激。没有帮助是不可能的。
-
@AndrewThompson 完成 :-)
标签: java javasound javax.sound.sampled