JavaSound API を使用してオーディオ ファイルを読み書きするオーディオ フィルタを作成しようとしています。現在、私のコードは次のように構成されています。
ByteArrayOutputStream b_out = new ByteArrayOutputStream();
// Read a frame from the file.
while (audioInputStream.read(audioBytes) != -1) {
//Do stuff here....
b_out.write(outputvalue);
}
// Hook output stream to output file
ByteArrayInputStream b_in = new ByteArrayInputStream(b_out.toByteArray());
AudioInputStream ais = new AudioInputStream(b_in, format, length);
AudioSystem.write(ais, inFileFormat.getType(), outputFile);
これは、入力ファイルをストリームとして読み取り、処理して bytearrayoutputstream に書き込みますが、ファイル全体が処理されるまで待ってからディスクに書き込みます。理想的には、処理中に各サンプルをディスクに書き込むようにしたいと考えています。ストリーム コンストラクトのいくつかの組み合わせを試しましたが、AudioSystem.write() が入力ストリームを受け取るため、それを行う方法が見つかりません。何か案は?