用Java实现网络语音信号传送[Java编程]
本文“用Java实现网络语音信号传送[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
1、引言
Java是一门合适于分布式计算环境、特别是Internet程序计划的语言.这不但仅在于java具有很好的安全性和可移植性,还在于java为Internet编程供应了丰富的网络类库的支持.操纵这些网络类库,可以轻松编写多种范例的网络通信程序.但是由于某些限制,Java在传输多媒体信息方面的利用不是很广,大部份的利用都集合在网络上传输语音等音频信号的方面.传输音频信号利用筹划普通有两种,一是利用于数据广播的多对一传输,比方音频数据服务器向数个客户端发送音频数据信号,其最遍及的利用则是某些网上的IP电话,大家常常可以看到不少这种供应在线IP电话服务的网站的客户端都是利用的嵌在网页上的Java Applet程序,用来实现拨号、通话等等基本的网络电话功效; 第二种筹划则是我们本日要触及的部份,一对一的音频信号数据的传输.这种筹划的利用范围更广.大家都去过语音聊天室,大部份的语音聊天室的语音聊天功效的实现就是利用的Java技术,大家对这样网页的源代码解析一下便可以发现这一点.
我曾开辟一个项目,触及利用java来实目前网络上传输语音数据.开辟中碰到不少问题,并且在互联网上发现关于java语音传输的资料对比少,探求了很多天,终究从一个开放源代码的一个简单的Answer Machine 演示程序中得到了办理问题的办法.本日我就把我在点对点传输音频信号方面的一些经验拿出来,与大家共同探究这方面的问题.
2、存在的问题
在网络上传输音频的方面存在的问题主要可以归纳为以下几点:
1 双方之间的网络衔接
要举行频数据的传输,首先就是要成立数据连结.常用的通讯协议中,TCP较坚固,所以用在不答应数据丧失的利用上.而UDP则较多利用于处理速度要求较快、数据传输坚固性要求不是很高的利用上,如数据广播.通信协议的挑选取决于我们所要做的利用的范例.怎样成立网络衔接,安定的接纳和发送音频信号的数据流是关键.
2 音频信号的采集以及回放
在举行音频信号的采集合我们必须考虑到采样率的问题,声音信号的采样率有8Khz、16Khz、32Khz、44Khz等,每种数据采样虑产生的数据量都不一样,越高的采样率产生的数据量越大,所以我们要挑选符合的采样率以适应网络的带宽.
3 音频数字信号的编码与解码.
假如把直接采集到的音频信号数据流在网络上举行传输,它所占据的带宽也是非常大的,以8Khz的采样率采集14位的音频数据那么就有以下这样的一个式子:
14 bit * 8000/second=112,000 bits/second or112kbps
从中我们可以看出以这样的方法传输音频数据,每秒需求向网络中发送112kb的数据.所以.从节俭带宽的角度考虑,我们很有必要对这样的数据举行压缩.对多媒体信号的压缩我们有很多可以挑选的格局,如mp2、mp3、GSM等等.一样,我们这里也存在一个对压缩格局举行挑选的问题,考虑到音频数据传输的及时性,对传输的音频数据质量的要求,以及各种压缩格局的压缩比率以及举行压缩和解压缩所要耗费的系统资源等方面问题,挑选符合的压缩格局就显得尤为重要.
以上是“用Java实现网络语音信号传送[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |