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

时间:2013-04-06 19:58:53

标签: java audio wav

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

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

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

我错过了什么吗?有没有办法解决这个问题,除了像保存数据或样本文件之类的黑客,然后对其进行后期处理?

1 个答案:

答案 0 :(得分:0)

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