所以,我查看了Java的声音教程,但我发现它并没有那么有用。 无论如何,我从用于录制麦克风声音的教程中理解的是:
虽然他们确实展示了如何获取目标数据线等等,但他们并没有告诉你如何实际录制声音[或者我没有把它完全记录下来]。
到目前为止,我的理解是这样的:
Mixer
可以是声卡或声音软件驱动程序,可用于处理声音,无论是输入还是输出TargetDataLine
。喜欢将其保存到磁盘Port
是您连接麦克风等外部设备的地方
答案 0 :(得分:2)
使用AudioSystem.getTargetDataLine(AudioFormat format)方法,您将获得
...目标数据行,可用于以AudioFormat对象指定的格式录制音频数据。返回的行将由默认的系统混合器提供,或者,如果不可能,则由系统中安装的任何支持匹配的TargetDataLine对象的混音器提供。
有关此示例,请参阅Java Sound API - capturing microphone的已接受答案 如果您想要更多地控制使用哪条数据线,您可以枚举它们支持的所有混音器和数据线,并选择您想要的数据线。以下是有关如何执行此操作的更多信息:Java - recording from mixer
获得TargetDataLine后,您应该open()
,然后重复调用read()以从该数据行获取数据。每次调用byte[]
时填充数据的read()
都可以写入磁盘,例如通过FileOutputStream。