【发布时间】:2011-09-14 18:43:54
【问题描述】:
以下是从2audio input streams读取音频数据到字节数组中的代码。
import javax.sound.sampled.*;
import java.io.*;
class tester {
public static void main(String args[]) throws IOException {
try {
Clip clip_1 = AudioSystem.getClip();
AudioInputStream ais_1 = AudioSystem.getAudioInputStream( new File("D:\\UnderTest\\wavtester_1.wav") );
clip_1.open( ais_1 );
Clip clip_2 = AudioSystem.getClip();
AudioInputStream ais_2 = AudioSystem.getAudioInputStream( new File( "D:\\UnderTest\\wavtester_2.wav") );
clip_2.open( ais_2 );
byte arr_1[] = new byte[ais_1.available()]; // not the right way ?
byte arr_2[] = new byte[ais_2.available()];
ais_1.read( arr_1 );
ais_2.read( arr_2 );
} catch( Exception exc ) {
System.out.println( exc );
}
}
}
从上面的代码中,我有一个字节 array1,array2 用于 ais_1,ais_2 。有什么方法可以连接这些 2 字节数组(arr_1,arr_2),然后将它们转换回音频流?我想连接 2 个音频文件。
【问题讨论】:
-
我发表评论是因为它不是一个完整的答案:我认为
.available()不一定会返回流中可用的字节总数。使用ais_1.frameLength * ais_1.frameSize应该可以代替。
标签: java audio bytearray javasound