【问题标题】:Play Audio from Microphone through Speakers通过扬声器播放麦克风中的音频
【发布时间】:2015-10-31 23:58:45
【问题描述】:

我想知道如何在 Java 中最好使用DataLine 从麦克风捕获音频,并将其直接播放到扬声器,即使有一些延迟。

基本上,我希望能够从麦克风获取音频,存储有限数量样本的缓冲区,能够以某种方式修改每个样本,并在最短的时间内通过扬声器播放出来对于录制和播放之间的每个样本。有点像编写一个 Java 程序来使用我的电脑作为效果踏板;这可能吗?(假设我已经知道如何修改样本)。需要明确的是,我不想从麦克风录制有限数量的样本,停止录制,修改,然后播放;我希望它可以连续录制和播放。

【问题讨论】:

    标签: java audio signal-processing microphone speaker


    【解决方案1】:

    这是一个从TargetDataLine 读取到字节缓冲区,然后在循环中无限期地将其写入SourceDataLine 的问题。

    由此产生的延迟很大程度上取决于您使用的音频缓冲区的大小。缓冲区越大,延迟越大。

    看看音频循环示例here

    【讨论】:

    • 看起来 jsresources.org 不再是有效链接。
    • @PhilFreihofner 好的,我已经更新了链接。幸运的是,我在 GitHub 上缓存了一份副本。
    • 谢谢!这是有价值的信息。很高兴看到它可用。
    • 您的答案应该已被选中。 Matthias 的这段代码是可靠的。我也看过他在音频方面的其他作品,都很好。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-06
    • 2018-06-18
    相关资源
    最近更新 更多