想知道语音聊天室怎么实现的`

问题描述

在哪里有开源的项目```想下的看看``````

解决方案

解决方案二:
java语音聊天程序集成了java文本聊天和java语音聊天。///服务器界面importjava.io.*;importjava.awt.*;importjava.awt.event.*;importjava.net.*;publicclassServerextendsFrame{TextFieldtf=newTextField(20);TextAreata=newTextArea();Buttonsend=newButton("send");ButtonvoiceChat=newButton("voiceChat");ServerSocketserSocket;Socketclient;InputStreamin;BufferedReaderbr;OutputStreamout;BufferedWriterbw;publicServer(){super("Server");add("North",tf);add("Center",ta);add("South",send);add("East",voiceChat);setBackground(Color.yellow);setSize(250,250);show();addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEvente){dispose();System.exit(0);}});try{ServerSocketserSocket=newServerSocket(5000);client=serSocket.accept();ta.append("clienthost"+client.getInetAddress().getHostName()+"nn");in=client.getInputStream();br=newBufferedReader(newInputStreamReader(in));out=client.getOutputStream();bw=newBufferedWriter(newOutputStreamWriter(out));}catch(Exceptione){}while(true){try{byte[]buf=newbyte[200];in.read(buf);Stringstr=newString(buf);ta.append("Clientsay:"+str);ta.append("n");}catch(IOExceptione){}}}publicbooleanaction(Eventevt,Objectarg){if(evt.target.equals(send)){try{Stringstr=tf.getText();byte[]buf=str.getBytes();tf.setText(null);out.write(buf);ta.append("Isay:"+str);ta.append("n");}catch(IOExceptionioe){}}elseif(evt.target.equals(voiceChat)){try{ServerSocketserSock=newServerSocket(6000);Socketcli=serSock.accept();Playbackplayer=newPlayback(cli);player.start();}catch(Exceptione){}}returntrue;}publicstaticvoidmain(String[]args){Serverserver=newServer();}}//客户端界面importjava.io.*;importjava.awt.*;importjava.awt.event.*;importjava.net.*;publicclassClientextendsFrame{TextFieldtf=newTextField(20);TextAreata=newTextArea();Buttonsend=newButton("send");ButtonvoiceChat=newButton("voiceChat");Socketclient;InputStreamin;OutputStreamout;BufferedReaderbr;BufferedWriterbw;publicClient(){super("Client");add("North",tf);add("Center",ta);add("South",send);add("East",voiceChat);setSize(250,250);show();addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEvente){dispose();System.exit(0);}});try{Socketclient=newSocket("127.0.0.1",5000);ta.append("Connectto:"+client.getInetAddress().getHostName()+"nn");in=client.getInputStream();br=newBufferedReader(newInputStreamReader(in));out=client.getOutputStream();bw=newBufferedWriter(newOutputStreamWriter(out));}catch(IOExceptionioe){}while(true){try{byte[]buf=newbyte[200];in.read(buf);Stringstr=newString(buf);ta.append("Serversay:"+str);ta.append("n");}catch(IOExceptione){System.out.print(e.getMessage());}}}publicbooleanaction(Eventevt,Objectarg){if(evt.target.equals(send)){try{Stringstr=tf.getText();byte[]buf=str.getBytes();tf.setText(null);out.write(buf);ta.append("Isay:"+str);ta.append("n");}catch(IOExceptionioe){System.out.print(ioe.getMessage());}}elseif(evt.target.equals(voiceChat)){try{Socketcli=newSocket("127.0.0.1",6000);Capturecap=newCapture(cli);cap.start();}catch(Exceptione){}}returntrue;}publicstaticvoidmain(String[]args){Clientclient=newClient();}}//音频捕获部分,//Capture.javaimportjava.io.*;importjavax.sound.sampled.*;importjava.net.*;/***Title:VoiceChat*Description:音频捕捉(录音程序)*Copyright:Copyright(c)2001*Company:*@author*@version1.0*/classCaptureimplementsRunnable{TargetDataLineline;Threadthread;Sockets;BufferedOutputStreamcaptrueOutputStream;Capture(Sockets){//构造器取得socket以获得网络输出流this.s=s;}publicvoidstart(){thread=newThread(this);thread.setName("Capture");thread.start();}publicvoidstop(){thread=null;}publicvoidrun(){try{captrueOutputStream=newBufferedOutputStream(s.getOutputStream());//建立输出流此处可以加套压缩流用来压缩数据}catch(IOExceptionex){return;}AudioFormatformat=newAudioFormat(8000,16,2,true,true);//AudioFormat(floatsampleRate,intsampleSizeInBits,intchannels,booleansigned,booleanbigEndian)DataLine.Infoinfo=newDataLine.Info(TargetDataLine.class,format);try{line=(TargetDataLine)AudioSystem.getLine(info);line.open(format,line.getBufferSize());}catch(Exceptionex){return;}byte[]data=newbyte[1024];//此处的1024可以情况进行调整,应跟下面的1024应保持一致intnumBytesRead=0;line.start();while(thread!=null){numBytesRead=line.read(data,0,128);//取数据(1024)的大小直接关系到传输的速度,一般越小越快,try{captrueOutputStream.write(data,0,numBytesRead);//写入网络流}catch(Exceptionex){break;}}line.stop();line.close();line=null;try{captrueOutputStream.flush();captrueOutputStream.close();}catch(IOExceptionex){ex.printStackTrace();}}}//下面是音频输出的代码://Playback.javaimportjava.io.*;importjavax.sound.sampled.*;importjava.net.*;/***Title:VoiceChat*Description:输出音频(放音程序)*Copyright:Copyright(c)2001*Company:*@author*@version1.0*/classPlaybackimplementsRunnable{finalintbufSize=16384;SourceDataLineline;Threadthread;Sockets;Playback(Sockets){//构造器取得socket以获得网络输入流this.s=s;}publicvoidstart(){thread=newThread(this);thread.setName("Playback");thread.start();}publicvoidstop(){thread=null;}publicvoidrun(){AudioFormatformat=newAudioFormat(8000,16,2,true,true);//AudioFormat(floatsampleRate,intsampleSizeInBits,intchannels,booleansigned,booleanbigEndian)BufferedInputStreamplaybackInputStream;try{playbackInputStream=newBufferedInputStream(newAudioInputStream(s.getInputStream(),format,2147483647));//封装成音频输出流,如果网络流是经过压缩的需在此加套解压流}catch(IOExceptionex){return;}DataLine.Infoinfo=newDataLine.Info(SourceDataLine.class,format);try{line=(SourceDataLine)AudioSystem.getLine(info);line.open(format,bufSize);}catch(LineUnavailableExceptionex){return;}byte[]data=newbyte[1024];//此处数组的大小跟实时性关系不大,可根据情况进行调整intnumBytesRead=0;line.start();while(thread!=null){try{numBytesRead=playbackInputStream.read(data);line.write(data,0,numBytesRead);}catch(IOExceptione){break;}}if(thread!=null){line.drain();}line.stop();line.close();line=null;}}

解决方案三:
该回复于2010-12-09 16:07:09被版主删除
解决方案四:
谢谢``能在浏览器上适用吗
解决方案五:
该回复于2010-12-10 09:43:47被版主删除
解决方案六:
这样可以吗?
解决方案七:
该回复于2010-12-10 09:42:33被版主删除

时间: 2024-10-02 03:48:48

想知道语音聊天室怎么实现的`的相关文章

手把手教你建ASP语音聊天室

聊天室 第一步:下载语音聊天室服务器端程序,我们要用的是Bchat工作室的Bchat Server. 1.进入http://bchat.yinsha.com/页面:2.页面右侧的"火热头条"中有"Bchat推出10用户免费下载版"字样,我们需要的就是它:3.点击"Bchat推出10用户免费下载版"的链接后,就到了免费版本下载页面:4.在下载页面中下载"Windows版本"(其他版本我没用过,我就会使用Windows版本):5.

ASP语音聊天室的搭建

第一步:下载语音聊天室服务器端程序,我们要用的是Bchat工作室的Bchat Server. 1.进入http://bchat.yinsha.com/页面: 2.页面右侧的"火热头条"中有"Bchat推出10用户免费下载版"字样,我们需要的就是它: 3.点击"Bchat推出10用户免费下载版"的链接后,就到了免费版本下载页面: 4.在下载页面中下载"Windows版本"(其他版本我没用过,我就会使用Windows版本): 5.

用Agent+ASP技术制作语音聊天室

聊天室 用Agent+ASP技术制作语音聊天室--------------------以下为程序内容,按文章中出现的顺序分块排序 <!--定义"AgentControl"--><OBJECT classid=clsid:D45FD31B-5C6E-11D1-9EC1-00C04FD7081F codeBase=#VERSION=2,0,0,0 id=Agent></OBJECT> <!--定义L&H TruVoice Text-To-S

fms-使用flash和FMS做语音聊天室怎样不播放自己的声音

问题描述 使用flash和FMS做语音聊天室怎样不播放自己的声音 使用NetStream流发布实时语音到服务器nsOut.publish("dummy", "live"); 然后客户端使用另一个NetStream播放nsIn.play("dummy"); 现在问题是自己说的话也被自己播放出来了这个该怎么解决,或者说做语音聊天室不是用这个方法做的 还求各位大大给个思路

实时语音聊天室 就是我发布语音聊天室里的所有人都可以听到 这个功能可以实现吗

问题描述 实时语音聊天室 就是我发布语音聊天室里的所有人都可以听到 这个功能可以实现吗 解决方案 发送语音消息是可以的,demo中已实现,可以参考,只是不支持群语音.

高分求。。。。关于B/S模式的语音聊天室?????

问题描述 有没有做过关于B/S模式的语音聊天室的高人,给于指点下.小弟高分求------小弟的邮箱:w.xukie@gmail.com 解决方案 解决方案二:不好意思进来后才看到"语音"两个字不过个人猜测还是把麦克风采集到的声音转化为相关声音文件(也许是用二进制数据保存写入缓冲区)当缓冲区有数据时用stream传输至服务器并进行相关操作接收语音时用异步访问服务器方法(比如ajax)来不停请求资源如果有对方的语音数据再用stream接收回来转换文件格式播放给耳机纯属猜测...帮顶...解

微信新版本新功能语音聊天室 语音提醒

[http://www.aliyun.com/zixun/aggregation/6149.html">TechWeb报道]1月17日消息,微信今天放出了4.5 iPhone测试版本,增加了不少与语音相关的新功能:语音聊天室.语音提醒.语音输入等,据说使用的是 1.语音聊天室 语音聊天室是该版本最大的更新,在一个微信群中,用户用户可以发起语音聊天室,加入聊天室的成员可以收听到实时的语音信息,无论是在聊天室页面还是群页面,甚至返回手机主页面,只要保持微信后台运行即可. 这个功能有点对讲机的感

实现一个简单的语音聊天室(源码)

语音聊天室,或多人语音聊天,是即时通信应用中常见的功能之一,比如,QQ的语音讨论组就是我们用得比较多的.        这篇文章将实现一个简单的语音聊天室,让多个人可以进入同一个房间进行语音沟通.先看运行效果截图:          从左到右的三张图分别是:登录界面.语音聊天室的主界面.标注了各个控件的主界面. (如果觉得界面太丑,没关系,后面下载源码后,你可以自己美化~~) 一. C/S结构 很明显,我这个语音聊天室采用的是C/S结构,整个项目结构相对比较简单,如下所示:        该项目

想看视频聊天室美女脱衣 男子被骗24万

今年1月的一天晚上,南京市民王健在家上网,突然,网页上跳出了"http://www.aliyun.com/zixun/aggregation/12223.html">视频聊天室"的小窗口,让他有点好奇.通过阅读页面介绍,他得知聊天室里的主播都是年轻貌美的女孩,而入门的注册费才只要10元钱.王健毫不犹豫地向对方账户支付了10元钱,他哪里晓得,自己已经掉进了一家诈骗网站的圈套,随后被骗的钱财累 计达到了24万多元! 当晚,在进入聊天室大厅后,王健确实看到了许多美女主播,一张