写入未知长度的Wav文件(Java)

写入未知长度的Wav文件(Java),java,audio,wav,Java,Audio,Wav,我正在尝试为我编写的一些音频处理软件添加一个功能 我的软件已经从麦克风输入捕获声音,实时处理,并将结果发送到扬声器输出。(这已经是一个线程应用程序了。)我一直在使用javax.sound.sampled.*并处理wav数据(将其转换为数字样本和从数字样本转换为数字样本进行处理) 我想添加一个功能,将此软件会话的原始输入和转换输出保存到wav文件。但是创建新wav文件的签名(例如,WavFile.newWavFile(…)似乎想提前知道它将接收多少帧数据。由于这些是不确定时间的实时会话,我无法事先

我正在尝试为我编写的一些音频处理软件添加一个功能

我的软件已经从麦克风输入捕获声音,实时处理,并将结果发送到扬声器输出。(这已经是一个线程应用程序了。)我一直在使用javax.sound.sampled.*并处理wav数据(将其转换为数字样本和从数字样本转换为数字样本进行处理)

我想添加一个功能,将此软件会话的原始输入和转换输出保存到wav文件。但是创建新wav文件的签名(例如,WavFile.newWavFile(…)似乎想提前知道它将接收多少帧数据。由于这些是不确定时间的实时会话,我无法事先知道这些信息


我遗漏了什么吗?除了像保存数据或样本文件,然后对其进行后处理这样的黑客攻击之外,还有其他方法吗?

大多数音频文件编写器在写入输出流之前需要知道完整的文件大小。有一个名为的开源项目,它是Java sound API的一个实现,具有音频输出tputStream插件你可以试试