音频连接来自Java的两个WAV文件? 3 月,1 周 Questions & Answers 28478 在Java 1.6中,连接两个WAV文件的最简单方法是什么?(频率相同,没有什么特别之处。) (这可能很简单,但我的Google-fu在这个问题上今天似乎很薄弱。)
# 1 楼答案 但是,如果两个WAV文件在wave头文件中的格式不完全相同,就会出现问题 如果两个文件上的波形格式不一样,你必须找到一种方法来转换它们,使它们匹配 这可能涉及MP3转码或其他类型的转码(如果其中一种是用MP3编解码器编码的)
# 2 楼答案 以下是基本代码: 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 WavAppender { public static void main(String[] args) { String wavFile1 = "D:\\wav1.wav"; String wavFile2 = "D:\\wav2.wav"; try { AudioInputStream clip1 = AudioSystem.getAudioInputStream(new File(wavFile1)); AudioInputStream clip2 = AudioSystem.getAudioInputStream(new File(wavFile2)); AudioInputStream appendedFiles = new AudioInputStream( new SequenceInputStream(clip1, clip2), clip1.getFormat(), clip1.getFrameLength() + clip2.getFrameLength()); AudioSystem.write(appendedFiles, AudioFileFormat.Type.WAVE, new File("D:\\wavAppended.wav")); } catch (Exception e) { e.printStackTrace(); } } }
# 4 楼答案 WAV头应该不太难解析,如果我正确读取了this header description,您可以从第二个WAV中去掉前44个字节,然后简单地将字节附加到第一个WAV中。之后,您当然应该更改第一个WAV的一些标题字段,以便它们包含正确的新长度
# 1 楼答案
但是,如果两个WAV文件在wave头文件中的格式不完全相同,就会出现问题
如果两个文件上的波形格式不一样,你必须找到一种方法来转换它们,使它们匹配
这可能涉及MP3转码或其他类型的转码(如果其中一种是用MP3编解码器编码的)
# 2 楼答案
以下是基本代码:
# 3 楼答案
我通过here上的“代码示例和应用程序”链接找到了this(AudioConcat)
# 4 楼答案
WAV头应该不太难解析,如果我正确读取了this header description,您可以从第二个WAV中去掉前44个字节,然后简单地将字节附加到第一个WAV中。之后,您当然应该更改第一个WAV的一些标题字段,以便它们包含正确的新长度