基于mfc的ip公务电话

来源:互联网 发布:大数据平台功能模块 编辑:程序博客网 时间:2024/05/01 22:30

上次和同学一起做了一个比赛的项目,IP电话,初步实现了基本功能。但是由于暑假到来以及找工作的迫近,到了复赛便没有再继续做下去。

一直在复习找工作的东西,没时间总结,今天就稍微阐述一下吧。

 

1、因为要传输语音,传统的WINDOWS API如wavein waveout也能实现要求,好像因为性能的原因使用的不多,所以从一开始就选择了directsound,从录音到放音,都是一个同学摸索出来的,真是学到东西了,呵呵。

directX的确是windows一个很强大的音视频工具,如果以后工作能用得到的话,还真的认真学习一番。不过现在的职业方向还是先瞄着云计算吧。

2、TCP传输的问题。使用CSOCKET类。系统采用的是服务器/客户端模式,这里的重点在于设计一个合理的数据包,服务器能够有效的识别出哪些是控制信息,哪些是数据信息,并进行相应的操作。每发送一次录音buffer,都将其先保存在一段缓存区域中以防止播音不及时而造成的数据丢失。播音的时候采用了两个播音buffer轮流播放,比较好的解决了播音设备忙不过来而造成的声音杂乱问题

3、正如视频中的H.264压缩,语音数据也需要压缩,题目中提了一句g.712标准但是我们完全没用上。。

4、关于跨子网的问题。这个也是最羞愧的,虽然学的是通信专业但是平时真一点没有接触到这方面的东西。这就造成了

5、为了互不干扰,保证通话质量,开辟了多线程,录音使用录音线程,播音使用播音线程,甚至发送单独开辟了一个线程。

6、关于系统的实现效果,电话的基本功能都实现了,但主要的bug在于客户端位于不同电脑上的时候破音现象还是比较严重的,这和网络延迟有关,但一直没能解决这个问题;还有就是系统内存不断的上升,试验了很多方法,采用不同的方式来释放内存,但还是没有完美解决这个问题,内存仍有小幅的上涨。

 

 

 

 

 

原创粉丝点击