我正在尝试使用 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);
这会将输入文件作为流读取,对其进行处理并将其写入字节数组输出流,但它会等到整个文件处理完毕后再写入磁盘。理想情况下,我希望它在处理每个样本时将其写入磁盘。我已经尝试了几种流结构的组合,但找不到一种方法,因为 AudioSystem.write() 需要输入流。有任何想法吗?