我有一个简单的应用程序,它从麦克风开始录音,然后立即将声音播放回我的耳机,但是这里的问题是:音质不好并且在麦克风中说话后有持久的回声说话后最多可以持续 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);
}