Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1270921
  • 博文数量: 953
  • 博客积分: 52320
  • 博客等级: 大将
  • 技术积分: 13090
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-05 13:42
文章分类

全部博文(953)

文章存档

2011年(1)

2008年(952)

我的朋友

分类: C/C++

2008-08-05 13:58:03

下载本文示例代码
Duane Burton
Sr. Technical Marketing Engineer
Intel Corporation

Jim Huang
Sr. Technical Marketing Engineer
Intel Corporation

2002 年 6 月

应用于:Microsoft Windows? XP

原文出处:Integrating Rich Client Communications with the Microsoft Real-Time Communications API

摘要

  学习如何创建或集成实时通信(RTC)应用编程接口(API)的基本知识以实现音视频会议、应用程序共享、白板、简单的点对点聊天和音视频调节向导。RTC API 提供了卓越的基于PC的通信革新,这可应用于所有基于 Microsoft Windows XP的应用程序。

源代码下载 RTCSampleCode.zip.

目录

  • 绪论
  • RTC客户端接口
  • 选择通信类型
  • 调整通信设备
  • 初始化会话
  • 处理RTC事件
  • 创建通信会话
  • 处理实时流会话事件
  • 关闭会话
  • 平台性能
  • 结论
  • 参考资料

绪论

  微软的实时通信(RTC)应用编程接口(API)提供了卓越的基于PC的通信革新——即时消息、音视频会议和应用程序共享/协作,这可应用于所有基于 Microsoft Windows XP 的应用程序。
使用RTC的API来进行通信是一个非常简单的过程。

  1. 增强的客户端应用决定客户端通信平台的能力。
  2. 应用程序在通信期间使用首选的视音频设备。
  3. 应用程序发起通信会话。
  4. 在 RTC 层协调数据捕获、压缩和传输,这使得应用程序不用负责这一任务。使用哪一种音视频的编码解码器由通信双方的连接质量决定。
  5. 参与会话的应用程序接受、解压并重放被传输的数据。


图一、音视频会议例子界面

  本文描述了怎样为一个应用程序添加 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。

  • 视频:Windows RTC 客户端支持分辨率为QCIF(176×144)的H.261和H.263 codecs。 这些比特率可变的codecs以6~125 Kbps传送视频数据。使用IRTCClient方法中的put_MaxBitRate和put_TemporalSpatialTradeOff有可能会影响到视频传送的空间和瞬时清晰度。
  • 音频:Windows RTC客户端支持许多音频codec。音频codec由连接的两端共同决定。下表列出了所支持的音频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
阅读(100) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~