以下は、オーディオデータを2 audio input streams
からバイト配列に読み込むコードです。2バイト配列を連結してからオーディオストリームに変換する
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);
}
}
}
上記コードからiがais_1,ais_2
ためのバイトarray1,array2
を有します。これらの2バイトの配列(arr_1,arr_2
)を連結し、それらをオーディオストリームに変換する方法はありますか?私は2つのオーディオファイルを連結したい。
それは完全な答えではないので、私はこのコメントを作っている:私は() '必ずしも.available戻ります'とは思いませんストリーム内で使用可能な合計バイト数代わりに 'ais_1.frameLength * ais_1.frameSize'を使ってください。 – MusiGenesis