分类: C/C++
2008-08-04 09:34:26
绪论
微软的实时通信(RTC)应用编程接口(API)提供了卓越的基于PC的通信革新——即时消息、音视频会议和应用程序共享/协作,这可应用于所有基于 Microsoft
Windows XP 的应用程序。
使用RTC的API来进行通信是一个非常简单的过程。
图一、音视频会议例子界面
本文描述了怎样为一个应用程序添加 PC-to-PC 的 RTC 基本能力;我们假定你对使用COM对象开发Windows应用程序已经很熟悉。本文所讨论的源代码可在本文开始所给出的连接里获得。我们以后将会讨论PC-to-Phone、
出席和XML配置。
例子代码展示了使用实时通信API实现音视频会议、应用程序共享、白板、简单的点对点聊天和音视频调节向导的基本要素。其他RTC
支持但本文没有讨论的特征有回波抵消(AEC)、前向错误校验(FEC)、
带宽估计、动态抖动缓冲管理、自动增益控制(AGC)和服务质量(QC)控制算法。在《Microsoft
Windows 实时通信(RTC)客户端的媒体支持》中描述了上述特征。
RTC客户端接口
所需头文件:
rtccore.h
你的应用程序需要通过 CoCreateInstance()来获得RTC接口,CLSID_RTCClient(GUID = {7a42ea29-a2b7-40c4-b091-f6f024aa89be})作为参数。一旦获得了接口,用Initialize()来初始化COM对象,以确定该平台的通信能力。
// Initialize the RTC COM object hr = CoCreateInstance (CLSID_RTCClient, NULL, CLSCTX_INPROC_SERVER, IID_IRTCClient, (LPVOID *)&m_pClient); // Initialize the client interface hr = m_pClient->Initialize();选择通信类型
m_pClient->SetPreferredMediaTypes ( RTCMT_ALL, VARIANT_TRUE );
会议参与者的平台性能和可用带宽决定了使用哪一种codec。
CODEC | Sampling Rate (kHz) | Bit Rate (Kbps) | Frame Size (msec) |
---|---|---|---|
G.711 | 8 | 64 | 20 |
G.722.1 | 16 | 24 | 20 |
G.723 | 8 | 6.4 | 30, 60, or 90 |
GSM | 8 | 13 | 20 |
DVI4 | 8 | 32 | 20 |
SIREN | 16 | 16 | 20, or 40 |