因此,我浏览了 Java 的声音教程,但发现它并没有那么有用。
无论如何,我从麦克风录制声音的教程中了解到的是:
虽然他们确实展示了如何获取目标数据线等等,但他们并没有告诉你如何实际录制声音[或者我可能没有完全理解]。
到目前为止,我的理解是这样的:
Mixer
可以是您的声卡或声音软件驱动程序,可用于处理声音,无论是输入还是输出TargetDataLine
用于将声音输出到计算机。喜欢就存盘端口
是连接麦克风等外部设备的地方遗留问题
最佳答案
使用 AudioSystem.getTargetDataLine(AudioFormat format)你会得到的方法
... a target data line that can be used for recording audio data in the format specified by the AudioFormat object. The returned line will be provided by the default system mixer, or, if not possible, by any other mixer installed in the system that supports a matching TargetDataLine object.
请参阅 Java Sound API - capturing microphone 的已接受答案举个例子。
如果你想更好地控制使用哪条数据线,你可以枚举所有混音器和它们支持的数据线,然后选择你想要的。以下是有关如何执行此操作的更多信息:Java - recording from mixer
获得 TargetDataLine 后,您应该open()
它,然后调用 read()反复从该数据线获取数据。您在每次调用 read()
时用数据填充的 byte[]
可以写入磁盘,例如通过 FileOutputStream .
关于java - 从麦克风捕捉声音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13973276/