WEB开发网
开发学院软件开发VC 实时语音通信的实现 阅读

实时语音通信的实现

 2010-08-15 20:47:46 来源:WEB开发网   
核心提示:引言本人虽已学习VC++一年半载,仍觉捉襟见肘,实时语音通信的实现,好在有VCKBASE的帮忙,确实学 到了不少东西,例子程序运行画面:下面且看我细细道来:(一)首先定义了一个声音数据“块”struct CAudioData{PBYTE lpdata; //指向语音数据,注意这里内存区域是动态申

引言

本人虽已学习VC++一年半载,仍觉捉襟见肘,好在有VCKBASE的帮忙,确实学 到了不少东西,www.vckbase.com也成了我每次上民网必到之处(阁下有所不知, 鄙人接受最为严格的管理,上民网是要申请的)。近日在做一个通信 方面的程序 ,实时的语音和视频通信当然是大家所喜欢的。本文将向您展示局域网环境下实 时语音通信的的一个解决方案(视频这一块正在做,估计很快就能出炉),Winxp环 境下测试效果良好,并且具有网络 拥塞处理机制,您不妨一看。

本文以第26期 栾义明 先生的《基于API的录音机程序》为基础的,在此深表 感谢。雷同之处将不再赘述,主要做了以下发展:

(1) 利用多线程机制,实现录音、网络传输、放音同时进行。

(2) 网 络壅塞处理,保证数据不丢失。

例子程序运行画面:

下面且看我细细道来:

(一)首先定义了一个声音数据“块”

struct CAudioData
{
  PBYTE lpdata; //指向语音数据,注意这里内存区域是动态申请释放的
  DWORD dwLength;//语音数据长度
}
接下来申明两个循环队列和相关指针。

//InBlocks,OutBlocks非别为两个常数
CAudioData m_AudioDataIn[InBlocks],m_AudioDataOut[OutBlocks];
int  nAudioIn, nSend, //录入、发送指针
   nAudioOut, nReceive;//接收、播放指针
// 对于录音和放音都 存在和网络的同步问题,主要靠这些指针进行协调

1 2 3  下一页

Tags:实时 语音 通信

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接