資源簡介
一個Java語音聊天工具,可實現(xiàn)如同QQ或其它語音聊天一樣的功能

代碼片段和文件信息
//音頻捕獲部分,
//Capture.java
import?java.io.*;?
import?javax.sound.sampled.*;?
import?java.net.*;?
/**?
*?title:????????VoiceChat?
*?Description:??音頻捕捉(錄音程序)?
*?Copyright:????Copyright?(c)?2001?
*?Company:?
*?@author????????
*?@version?1.0?
*/?
class?Capture?implements?Runnable?{?
???????TargetDataLine?line;?
???????Thread?thread;?
???????Socket?s;?
???????BufferedOutputStream?captrueOutputStream;?
???????Capture(Socket?s){//構(gòu)造器?取得socket以獲得網(wǎng)絡(luò)輸出流?
?????????this.s=s;?
???????}?
???????public?void?start()?{?
???????????thread?=?new?Thread(this);?
???????????thread.setName(“Capture“);?
???????????thread.start();?
???????}?
???????public?void?stop()?{?
???????????thread?=?null;?
???????}?
???????public?void?run()?{?
???????????try?{?
?????????????captrueOutputStream=new?BufferedOutputStream(s.getOutputStream());//建立輸出流?此處可以加套壓縮流用來壓縮數(shù)據(jù)?
???????????}?
???????????catch?(IOException?ex)?{?
???????????????return;?
???????????}?
???????????AudioFormat?format?=new?AudioFormat(8000162truetrue);//AudioFormat(float?sampleRate?int?sampleSizeInBits?int?channels?boolean?signed?boolean?bigEndian)?
???????????DataLine.Info?info?=?new?DataLine.Info(TargetDataLine.classformat);?
???????????try?{?
???????????????line?=?(TargetDataLine)?AudioSystem.getLine(info);?
???????????????line.open(format?line.getBufferSize());?
???????????}?catch?(Exception?ex)?{?
???????????????return;?
???????????}?
???????????byte[]?data?=?new?byte[1024];//此處的1024可以情況進行調(diào)整,應(yīng)跟下面的1024應(yīng)保持一致?
???????????int?numBytesRead=0;?
???????????line.start();?
???????????while?(thread?!=?null)?{?
???????????????numBytesRead?=?line.read(data?0128);//取數(shù)據(jù)(1024)的大小直接關(guān)系到傳輸?shù)乃俣龋话阍叫≡娇欤?
???????????????try?{?
?????????????????captrueOutputStream.write(data?0?numBytesRead);//寫入網(wǎng)絡(luò)流?
???????????????}?
???????????????catch?(Exception?ex)?{?
???????????????????break;?
???????????????}?
???????????}?
???????????line.stop();?
???????????line.close();?
???????????line?=?null;?
???????????try?{?
???????????????captrueOutputStream.flush();?
???????????????captrueOutputStream.close();?
???????????}?catch?(IOException?ex)?{?
???????????????ex.printStackTrace();?
???????????}?
???????}?
?????
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????2364??2007-08-29?22:11??java?語音聊天\Capture.java
?????文件???????2623??2007-08-22?00:37??java?語音聊天\Client.java
?????文件???????2252??2007-08-22?00:36??java?語音聊天\Playback.java
?????文件???????2697??2007-08-22?00:37??java?語音聊天\Server.java
?????目錄??????????0??2011-11-10?13:11??java?語音聊天
-----------?---------??----------?-----??----
?????????????????9936????????????????????5
評論
共有 條評論