java语音聊天室原形的实现
<转自CSDN>
原本以为从麦克风上获得音频输入很复杂,原来javaSound已经封装的很简单了。
可以使用AudioCapture来完成。
聊天室音频的回放一般用流来完成:AudioPlayStream 类负责。
聊天室比较复杂的地方还是关于音频流和多线程的结合使用。
1 需要为每个聊天的人建立一个Session,就是一个客户端一个连接。
2 需要建立一个和Session对应的线程来发送音频流。
3 建立一个接收音频流的线程,收到后,播放。
技术难点:
1、看下面的代码:
while ((!Thread.currentThread().interrupted())) {
try {
nBR = pbIS.read(data);
if (nBR == -1) {
c = true;
break;
}
pbL.write(data, 0, nBRead);
} catch (IOException e) {
System.exit(1);
}
}
上面就是在: while ((!Thread.currentThread().interrupted()))
这一句,到底是在什么情况下使用呢?
这里的System.exit(1) 是不是退出当前的线程?
2、
while ((!Thread.currentThread().interrupted())) {
b = mIS.read(cV, 0, bS);
sS.write(cV, 0, b);
}
采用这样的方式来进行语音的输入,如果线程断了就打印出错信息。
http://www-106.ibm.com/developerworks/websphere/zones/voice/
http://openjavaproject.blogdriver.com/diary/openjavaproject/index.html