VOIP电话软件的设计与实现.docVIP

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
VOIP电话软件的设计与实现   摘要:介绍了网络语音通信的原理、关键技术和实现方法,详细叙述了基于Java的VOIP电话软件的设计要素和系统流程,经测试在语音和时延上都满足实际通话的需要。   关键词:VOIP;多线程;JAVA   中图分类号:TP391文献标识码:A文章编号:1009-3044(2009)24-6723-02      The Design and Realization of VOIP Telephone Software   LI Feng-qin, LU Jing, LIU Hong-feng   (Shanghai University of Electric Power, Shanghai 200090, China)   Abstract: The principle,the key technologies and the implement method of voice communication based on network are introduced. The design elements and system flow of VOIP telephone software based on JAVA is recited in detail. The tested software reaches the need of actual communication in timbre and time-delay.   Key words: VOIP; thread; JAVA      随着网络技术的迅速发展,特别是网络带宽的增加和语音压缩技术的进步, 使得模拟语音信号以“数据封包”的形式在Internet传输成为可能。因其通话质量可与传统的PSTN电话相媲美,但其费用却远远低于固定话费,使得VOIP(Voice Over Internet Protocol)有着广大的应用市场。本文基于Java用eclipse开发了运行于JRE环境的VOIP系统软件,实现了互联网上的PC-PC的通话,经测试,效果完全可达到人们的通话需求。      1 关键技术      VOIP的基本原理就是先对模拟语音信号进行模数转换,经过编码压缩后,按一定的打包规则转换成IP数据包,再通过网络传输到接收方,最后经过数据解压、数模转换复原成语音信号,从而达到由互联网传输语音的目的。实现VOIP系统的关键就是如何采集和播放语音以及如何实现数据的网络传输。   1.1 语音采集、播放的实现   Java具有众多的网络API,例如支持数字音频和MIDI数据的记录/回放的JavaSound。   在当前JavaSound的默认配置中,输入声音来自本地声卡的麦克风,输出声音到本地声卡的扬声器。取样得到的音频数据格式选项由AudioFormat类封装,主要选项包括编码方式、通道数量、取样率、帧速率等。音频数据可以WAV、AIFF和AU等多种格式保存,音频文件的格式由AudioFileFormat类指定。   实现这部分功能的主要程序有:   AudioFormat fmt= newAudioFormat (8000,16,2,true,true);   程序实现了一个PCM编解码格式的对象,指明了数据流的码速是8000Hz、分组长度是16bit、声道数是2、以及是否采用双向编码方式(ture表示双向编码)和网路传送方式(ture表示方式为bigEndian)。   然后进行语音的捕获,本软件做了一下封装:   Capture cap=new Capture(fmt);   cap.read(buffer,0,1024);   其中,fmt为AudioFormat的对象。捕获的音频所生成的数据是存放在buffer这个字节数组里的。   播放音频时,本软件也封装了一下:   PlayBack play=new PlayBack(fmt);   Play.write(buffer,0,1024);   这样就把buffer中的数据获取成音频了。   1.2 数据网络传输的实现   网络中的两台机器可以通过Socket通信,在J2SDK-1.3中,Socket和ServerSocket类库位于java.net包中。ServerSocket用于服务器端,Socket用于客户端。在连接成功时,应用程序两端都会产生一个Socket实例,操作这个实例,完成所需的会话:   ServerSocket listen=new ServerSocket(5000); 这是在5000端口建立监听对象。   Socket sock1=listen.accept( ); 这是接

文档评论(0)

yingzhiguo + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:5243141323000000

1亿VIP精品文档

相关文档