问题描述
在做聊天软件,在语音聊天这块,因为我的聊天是基于服务器中转的,所以我的想法是:当点击“语音”按钮时:客户端开始进行一直录音(直到用户点击结束语音聊天),并且每1024byte就存入一个.wav文件中,然后把这个文件发给服务器,让服务器再转发给另一个客户,再播放出来。下面是客户端一直录音并且每1024字节就保存起来的程序,但不知为什么,录到的文件始终为空。AudioFormataf;TargetDataLineline;Filevoicefile=newFile("E:/test.wav");try{af=newAudioFormat(8000,16,2,true,true);DataLine.Infoinfo=newDataLine.Info(TargetDataLine.class,af);line=(TargetDataLine)AudioSystem.getLine(info);line.open(af);bytedata[]=newbyte[1024];intnumByteRead=0;line.start();Messagevoice=newMessage();voice.setMessageType(MessageType.voice);while(true){numByteRead=line.read(data,0,1024);InputStreambyteRead=newByteArrayInputStream(data);AudioInputStreamais=newAudioInputStream(byteRead,af,data.length/af.getFrameSize());AudioSystem.write(ais,AudioFileFormat.Type.WAVE,voicefile);////////就是保存到这个文件里,但是一直为空!!!voice.setSender(this.owner);voice.setReceiver(receiver);voice.setTellGroupID(this.group);voice.setFile(voicefile);ObjectOutputStreamoosvoice=newObjectOutputStream(ManageCliConSerThread.getClienConSerThread(owner).getS().getOutputStream());oosvoice.writeObject(voice);}}catch(Exceptione){e.printStackTrace();}
解决方案
本帖最后由 Cryslonger 于 2011-03-14 15:49:53 编辑
解决方案二:
该回复于2011-03-14 17:24:24被版主删除