在我当前的项目中,我需要能够操作 Wave - 文件。它们由一个录制的声音组成,该声音是匿名的。我的第一个想法是改变音高和速度,但 Java Sound API 似乎不支持这样的东西。我认为使用 Java 可以很容易地进行一些基本的声音操作......好吧,如果有其他可能性也没关系。
经过一番研究,我找到了 OpenAL Library 和相应的手册OpenAL Programmers Guide。到目前为止,我能够改变音高,获得 asf。甚至使用 LWJGL 添加一些小效果(JOAL 也可以)。如果我想听结果,我只需要调用:
AL10.alSourcePlay( int source );
但我想保存操纵的音频文件。据我了解,我需要获取数据流并使用它。在研究了手册和来源之后,看起来它会支持这样的唯一功能是:
ALC11.alcCaptureSamples( ALCdevice device, ByteBuffer buffer, int samples )
但到目前为止我发现的例子表明,这个函数更多地用于捕获输入流,而不是用于操纵的源。所以问题是:是否有可能保存经过处理的音频文件?如果是,那么正确的方法是什么?