0

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

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

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

我错过了什么吗?除了保存数据或样本文件然后对其进行后处理之外,还有其他方法可以解决这个问题吗?

4

1 回答 1

0

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

于 2013-04-06T22:13:55.257 回答