你能解释下面的代码吗?请问? 尤其是这段代码声明关于代码声明的疑问Java
AudioInputStream joinFiles = new AudioInputStream(new SequenceInputStream(
clip1, clip2), clip1.getFormat(), clip1.getFrameLength()
+ clip2.getFrameLength());
我的理解是,连接操作只能做,如果文件具有相同的长度, 是正确的?
令我百思不解的是:
clip1.getFormat(), clip1.getFrameLength()
+ clip2.getFrameLength());
下面是完整的代码:
AudioInputStream clip1 = AudioSystem.getAudioInputStream(song1);
AudioInputStream clip2 = AudioSystem.getAudioInputStream(song2);
AudioInputStream joinFiles = new AudioInputStream(new SequenceInputStream(
clip1, clip2), clip1.getFormat(), clip1.getFrameLength()
+ clip2.getFrameLength());
AudioSystem.write(joinFiles, AudioFileFormat.Type.WAVE, outfile);
谢谢你,乌尔里克
假设有2个文件(.WAV) 1.wav(16位,立体声,PCM_SIGNED,持续时间54秒) 2.wav(8位,单声道,PCM_UNSIGNED,时间为3分钟02秒) 文件加入这种情况并没有给出好的结果。 不幸的是加入的文件长度不是3分56秒。 生成的文件有点dameged ... 我不知道.. 是否有另一种方法来解决加入2个不同功能的wav文件的问题? – ulrike 2010-07-07 08:35:14
@ulrike:这两个文件具有不同格式的事实将成为问题 - 而不是它们的长度不同。你应该先看看这种转换。我在Java中没有太多的经验来做这样的转换,但是这里的第310行似乎是朝着正确方向迈出的一步:http://www.docjar.com/html/api/com/sun/media/sound/ WaveFileWriter.java.html – 2010-07-07 09:25:56