제가 지금 pc와 안드로이드 스마트폰간의 음성 채팅을 구현하려고 합니다.
현재 진행사항은 음성 채팅이 이루어지지만 pc부분에서 마이크로 들어간 소리가 pc의 소리로
다시 들리는 현상이 일어나고 있습니다.
이 현상에 대한 해결을 위한 노력으로는 queue를 이용하여 버퍼링을 주는 방식을 사용했습니다.
이것에 대한 소스 작성이 잘못된 것인지 다른 해결방안이 있는지좀 알려주세요.
DatagramSocket sock = null;
DatagramPacket pack = null;
SourceDataLine sourceDataLine;
AudioInputStream audioInputStream;
byte[] play_buf;
.......
.......
.......
Queue<byte[]> myQueue = new LinkedList<byte[]>();
sock = new DatagramSocket(AUDIO_PORT);
play_buf = new byte[1600];
while (true) {
pack = new DatagramPacket(play_buf, BUF_SIZE);
sock.receive(pack);
myQueue.offer(pack.getData());
if (myQueue.size() > 1) {
play_buf = myQueue.poll();
sourceDataLine.write(play_buf, 0, BUF_SIZE);
}
}