你好,欢迎来到电脑编程技巧与维护杂志社! 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:文章管理 / 本期精品文章
网络语音通讯技术研究
 

摘 要 本文讲述了利用计算机进行声音录制和播放技术,以及数据在网络上传输的方法,并结合实例设计了一个网络语音通讯程序。
关键字 网络通讯,声音录制,声音播放,GSM610语音压缩
网络语音通讯是一项很实用的技术,由于这方面的资料较少,所以本文将结合程序对此作详细介绍,要实现网络语音通讯,必须搞清楚以下几个问题以及相应的编程方法:1.电脑如何录音;2.电脑如何播放声音;3.电脑之间如何进行数据传输;4.声音数据如何压缩与解压。

  1. 电脑录音的原理 

电脑依靠声卡来处理声音,Windows把声卡看作是录音和放音设备的组合体,录音时首先要准备一个录音队列,队列中包含录音的基本参数,比如录音数据缓冲区的地址,缓冲区的大小等,为了使录音过程平滑的进行,队列中至少包含两个以上数据缓冲区,当一个缓冲区录完后,Windows系统会给应用程序发送一个录音结束的消息,并自动开始转入下一个缓冲区进行录音,应用程序收到该消息后应该释放含有录音数据的队列,并取出该队列所指向的缓冲区的声音数据,然后将该缓冲区再次加入录音队列,以便继续进行录音。Windows就是这样利用这些数据缓冲区进行周而复始的录入工作。使用到的函数说明如下:
waveInOpen() 打开录音设备
waveInPrepareHeader()准备录音缓冲区
waveInAddBuffer()将缓冲区加入录音队列
waveInStart()开始录音
waveInUnprepareHeader()从录音队列中释放缓冲区
waveInReset()复位录音设备
waveInClose()关闭录音设备

  1. 电脑播放声音的原理 

同样的道理放音时也有放音队列和放音数据缓冲区,当用户需要播放声音时,先把声音数据放入数据缓冲区,然后将缓冲区加入放音队列,并向放音设备发送写数据命令,声卡就可以播放缓冲区中的声音了。缓冲区中数据播放完成后系统会向应用程序发送放音完成的消息,应用程序可以重复前面的工作,先释放完成的队列,然后向缓冲区加入新的声音数据,并再次将该缓冲区加入放音队列,让该队列继续工作。
waveOutOpen()打开放音设备
waveOutStart()开始放音
waveOutPrepareHeader()准备放音缓冲区
waveOutWrite()将数据写到放音设备上
waveOutUnprepareHeader()从放音队列中释放缓冲区
waveOutReset()复位放音设备
waveOutClose()关闭放音设备

...................................................(作者:倪建华)

...

  推荐精品文章

·2024年6月目录 
·2024年5月目录 
·2024年4月目录 
·2024年3月目录 
·2024年2月目录 
·2024年1月目录
·2023年12月目录
·2023年11月目录
·2023年10月目录
·2023年9月目录 
·2023年8月目录 
·2023年7月目录
·2023年6月目录 
·2023年5月目录

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备14022230号-1,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区远大路20号宝蓝大厦E座704,邮编:100089