欢迎来到天天文库
浏览记录
ID:8969444
大小:414.50 KB
页数:15页
时间:2018-04-13
《directx编程c#中利用socket实现网络语音通信[初级版本]》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、whanwhan.cublog.cn首页
2、文章
3、相册
4、收藏夹
5、留言关于作者姓名:职业:年龄:位置:个性介绍:
6、
7、<<2011年1月辛卯年(兔)>>
8、
9、日一二三四五六1元旦2廿八3廿九412月大5小寒6初三7初四8初五9初六10初七11腊八节12初九13初十14十一15十二16十三17十四18十五19十六20大寒21十八22十九23二十24廿一25廿二26廿三27小年28廿五29廿六30廿七31廿八我的分类DirectX编程:C#中利用Socket实现网络语音通信[初级版本]DirectX编程:C#中利用Socket实现网络语音通
10、信[初级版本] [声明:本篇来源:http://www.cnblogs.com/stg609/archive/2008/11/19/1334544.html作者:stg609] 现在时下的VOIP软件很多,比较有名的就是Skype,还有其它诸如UUcall、快门等等。它们提供的功能除了网络上的语音通话外,还可以与固定电话、手机等通话。在本篇中主要介绍利用C#实现语音通信的基本方法。但是目前只实现了网络上语音传输的基本功能,而且比较粗糙,没有采用什么算法来优化,所以大家千万不要期望过高。我写这篇的目的除了记录自己
11、的经历之外,更希望有高手能给出改进的意见或算法。 开发平台:.NETFramework2.0,VS2005,WindowsXP,DirectXSDK(June2008)下载页面 。 开发语言:C#。 测试环境:WindowsXP、.netframework2.0、普通局域网。 测试结果:在多台安装了windowsXP系统且配置不同的电脑上测试,均能正常运行。可以进行语音对话,但是有明显的杂音,沿时低。 限于篇幅,在本文中会详细介绍本人认为比较关健的问题,其它部分只做大概介绍,为了便于大家理解,可以先
12、阅读: 1.DirectX编程:[初级]C#中利用DirectSound录音 2.C#Socket编程笔记 在本文中打算按照以下顺序介绍: 1.项目结果预览与说明 2.实现方法概要 3.语言采集 我的文章分类.net数据库DB2oracleSQLServerMySQL数据库设计工具最短路径算法操作系统LinuxScoOpenserverShellXML编程C语言动态语言db2数据库开发Vim计算机基础硬件VMWare汽车点滴海阔天空UnixWare网站收藏我的图片分类我的链接分类4.
13、语音传输 5.语音播放 项目结果预览与说明 界面如下: 说明:界面很简单,只提供了一个选择或输入对方IP的功能,当选择合适局域网内IP之后,单击确定便激活了语音聊天的按钮。如果你想进行语音聊天就可以开始聊天了,聊天端口采用8000。本软件只适用于局域网内用户的聊天,另外因为没有增加用户认证的功能,所以只有在双方都启动了这款软件才能进行通信。如果只想在单机上测试,那只需要选择本机的IP便可。由于囧于技术水平,尝试N次之后,任不知如何才能正确地实现语音效果(如回声
14、消除、降噪等)来保障音质,因此在单机测试会有回声干扰,嚣叫声比较严重,希望高手解囊。 实现方法概要 要想实现语音聊天,有几个步骤是必须的(就是我不说,相信你应该也能想得到一些): a语音采集:采集的作用就是从你的麦克风中获取数据,我采用DirectSound类来实现这个技术。参考:C#中利用DirectSound录音 (b语音编码:利用语音编码算法对采集到的话音进行压缩编码,进行编码的目的是为了减少网络带宽的压力。) c语音传输:将采集到的声音传输到网络上的其它主机,我采用SocketU
15、DP方式来实现。参考:C#Socket编程笔记 (d语音解码:如果所传输的语音进行过压缩编码,则必须对语音进行解码,否则无法得到原始语音数据。) e语音播放:当对方通过网络传输到本机时(,如果需要解码则先执行d),进行实时播放。 上面红色标记的步骤,可以省略。在本软件中,我并未采用这两个步骤,因为当我采用了这两个步骤后,发现语音时延异常的严重。我采用的编解码算法是G.729,利用的是g729.dll库文件,压缩效果不错,但是时延比较严重,可能是自己哪里没有设置好。如果有朋友使用过该算法,且时延低的,希望不吝
16、赐教。 接下来,重点介绍语音采集、语音传输、语音播放的实现。 语音采集 由于所实现的方法与录音方法一致,因此不会着墨过多,如果你不能很好的理解,请先参考:C#中利用DirectSound录音 与录音不同的是,录音我们需要建立
此文档下载收益归作者所有