java - 从麦克风捕捉声音

标签 java audio port javasound jmf

因此,我浏览了 Java 的声音教程,但发现它并没有那么有用。 无论如何,我从麦克风录制声音的教程中了解到的是:
sound

虽然他们确实展示了如何获取目标数据线等等,但他们并没有告诉你如何实际录制声音[或者我可能没有完全理解]。
到目前为止,我的理解是这样的:

  • Mixer 可以是您的声卡或声音软件驱动程序,可用于处理声音,无论是输入还是输出
  • TargetDataLine 用于将声音输出到计算机。喜欢就存盘
  • 端口 是连接麦克风等外部设备的地方
  • 遗留问题

  • 如何选择合适的调音台? Java 的 tut 说你得到所有可用的混合器并查询每个混合器以查看它是否有你想要的。这对初学者来说很模糊
  • 如何获取我的集成麦克风所在的端口?具体来说,我如何将它的输入输入到混音器中?
  • 如何将其输出到磁盘?
  • 最佳答案

    使用 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/

    相关文章:

    java - 如何操纵颜色值?

    java - 几秒钟后,方法需要更长的时间来执行

    android - 通过左右扬声器传递音频

    Python端口转发

    mysql - 通过备用端口建立 mysql 连接

    java - 禁用 XMLInputFactory 中的功能安全处理

    java - AXIS java 应用程序中的 SSLException : Unrecognized SSL message, 明文连接错误

    java - JLabel html 文本忽略 setFont

    jquery - jQuery cookie-音频

    Linux Centos 6 如何过滤端口 80 + 破坏 Apache 2