Java语音聊天 - 所有目的都有自己的声音回响

时间:2015-10-12 07:01:33

标签: java audio voice

我已经使用sound.sampled api在java中编写了一个p2p语音聊天应用程序,我可以与其他人进行对话,但我实际上听到了我的声音回复给了我和我#39 ; m只发送我的语音包到其他连接(不是我自己)。其他用户说他也可以听到他的声音也回复给他。

这是我正在使用的音频捕捉和播放的片段,它也有非常糟糕的回声。

package soundtest;

import java.io.*;
import javax.swing.*;
import javax.sound.sampled.*;

public class Soundtest extends JFrame{


public static void main(String[] args) {
    AudioFormat format = new AudioFormat(44100, 16, 2, true, true);

    DataLine.Info targetInfo = new DataLine.Info(TargetDataLine.class, format); //Read from
    DataLine.Info sourceInfo = new DataLine.Info(SourceDataLine.class, format); //Write to


    try{
        TargetDataLine microphone = (TargetDataLine) AudioSystem.getLine(targetInfo);
        microphone.open(format);
        microphone.start();

        SourceDataLine speakers = (SourceDataLine) AudioSystem.getLine(sourceInfo);
        speakers.open(format);
        speakers.start();

        int numBytesRead;
        byte[] targetData = new byte[microphone.getBufferSize() / 5];

        for(;;){
        numBytesRead = microphone.read(targetData, 0, targetData.length);

        if (numBytesRead == -1) break;
        speakers.write(targetData, 0, numBytesRead);
        }
    }
    catch(Exception e){
        System.err.println(e);
    }
}
}

有谁知道回声的原因是什么?

0 个答案:

没有答案