2015-08-08 167 views
1

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

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

回答

0

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

产生的延迟将高度依赖于您使用的音频缓冲区的大小。缓冲区越大,延迟越大。

看看AudioLoop示例here

相关问题