快速业务通道

用Java实现网络语音信号传送 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-07-04
据发送到网络上。例如以下代码:

InputStream myIStream null; myIStream PhoneMIC.getAudioInputStream(); ...... while((!Thread.currentThread().interrupted())) b = myIStream.read(compressedVoice,0, bufSize); sendStream.write(compressedVoice,0,b); ......

通过使用CallLink 的几个方法,我们可以方便的传输和接收音频数据流。以下是它的代码:

class CallLink //使用套接字进行连接 String ipAddr null; Socket outSock = null; ServerSocket inServSock null; Socket inSock null; CallLink(String inIP) ipAddr inIP; void open() throws IOException, UnknownHostException {//打开网路连接 if (ipAddr != null) outSock=new Socket(ipAddr,TALK_PORT); } void listen() throws IOException {// 监听,等候呼叫 inServSock new ServerSocket(TALK_PORT); inSock inServSock.accept(); } public InputStream getInputStream()throws IOException {//返回音频数据输入流 if (inSock != null) return inSock.getInputStream(); else return null; } publicOutputStreamgetOutputStream()throwsIOException {//返回音频数据输出流 if (outSock != null) return outSock.getOutputStream(); else return null; } void close() throws IOException {//关闭网络连接 inSock.close(); outSock.close(); }

程序的代码总体有366 行,限于篇幅,这里就不一一列举了。

编译以及程序的使用方法:

运行和编译本程序需要加上额外的环境参数,为了方便使用可以建立以下内容的批处理文件:(假设程序所需要的包均在程序所在目录下的lib 文件夹中)

用于编译的批处理程序c.bat 的内容

javac -classpath .;lib\am.jar jphone.java

用于运行的批处理程序r.bat 的内容

java -classpath .;lib\am.jar jphone

启动时在A 计算机的IP 地址框内输入要进行连接的计算机B 的IP 地址,在计算机B 的IP 地址框内输入要进行连接的计算机A 的IP 地址,让后分别点击“拨出电话”按钮就可以进行连接了。当然别忘了接上麦克风和打开音箱电源,呵呵。

提醒大家,这里的IP 地址栏里预先存在的地址是127.0.0.1,也就是说,程序也可以和自己进行连接,点击“拨出电话”按钮,等8 秒左右敲敲你的麦克风,听到没有,是不是也有“嘣、嘣、嘣”的声音?

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号