录音和播放声音时回声

时间:2021-04-03 23:03:08

标签: java audio

我有一个简单的应用程序,它从麦克风开始录音,然后立即将声音播放回我的耳机,但是这里的问题是:音质不好并且在麦克风中说话后有持久的回声说话后最多可以持续 5 秒。我不确定问题是否出在 Java Sound API 上,我需要切换到另一个库。

我还想提一下,我使用的是插入计算机的耳机。当我使用低音量时,声音播放正常,但是当我将其调至最大值的 90% 时,音质确实变差了。

这是我的代码:

AudioFormat format = new AudioFormat(AudioFormat.Encoding.PCM_SIGNED, 44100, 16, 2, 4, 44100, false);
    
    DataLine.Info dataLineInfo = new DataLine.Info(TargetDataLine.class, format);
    TargetDataLine mic = (TargetDataLine) AudioSystem.getLine(dataLineInfo);
    mic.open();
    mic.start();
    
    DataLine.Info dataLineInfo2 = new DataLine.Info(SourceDataLine.class, format);
    SourceDataLine speakers = (SourceDataLine) AudioSystem.getLine(dataLineInfo2);
    speakers.open();
    speakers.start();
    
    byte[] buffer = new byte[1024];
    
    
    while(true) {
        mic.read(buffer, 0, buffer.length);
        
        speakers.write(buffer, 0, buffer.length);
        
    }

0 个答案:

没有答案