2015-08-08 200 views
1

我想知道如何在Java中使用DataLine從麥克風捕獲音頻,並直接播放到揚聲器,即使有一些延遲。從麥克風播放音頻通過揚聲器

基本上,我希望能夠從麥克風獲取音頻,存儲有限數量採樣的緩衝區,能夠以某種方式修改每個採樣,並通過揚聲器以少量記錄和播放每個樣本的時間。有點像寫一個Java程序來使用我的電腦作爲效果器;這是可能的嗎?(假設我已經知道如何修改樣本)。只需要清楚,我不要想從麥克風錄製有限數量的樣本,停止錄製,修改,然後播放;我希望它能夠連續錄製和播放。

回答

0

這是從TargetDataLine讀入字節緩衝區,然後無限期地將其寫入到一個循環中的SourceDataLine

產生的延遲將高度依賴於您使用的音頻緩衝區的大小。緩衝區越大,延遲越大。

看看AudioLoop示例here

相關問題