首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> VC >> 關於VC++

使用 Microsoft RTC API 整合豐富的即時通訊功能

     編輯:關於VC++

摘要

本文介紹如何利用 Microsoft 即時通訊(RTC)API,為 Windows XP 應用程式加入音視訊會議、應用程式共享、白板、點對點聊天及音視訊調校嚮導等功能。RTC API 提供基於 PC 的創新通訊體驗,開發者可快速建置整合式通訊應用。

簡介

RTC API 涵蓋即時訊息、音視訊會議、應用程式共享/協作,適用於所有 Windows XP 應用程式。通訊流程:

  1. 增強型用戶端決定通訊平台能力。
  2. 應用程式選用偏好的音視訊裝置。
  3. 發起通訊會話。
  4. RTC 層協調資料擷取、壓縮、傳輸,編解碼器由連線品質決定。
  5. 參與端接收、解壓、重放資料。

音視訊會議範例介面

本文假設讀者熟悉 COM 開發,原始碼可從文首連結取得。範例展示核心功能;其他如 AEC、FEC、頻寬估計、抖動緩衝、AGC、QoS 等特性請參閱《Microsoft Windows RTC Client Media Support》。

RTC 用戶端介面

需包含 rtccore.h,透過 CoCreateInstance 取得 CLSID_RTCClient,再呼叫 Initialize() 初始化。

hr = CoCreateInstance(CLSID_RTCClient, NULL, CLSCTX_INPROC_SERVER, IID_IRTCClient, (LPVOID*)&m_pClient);
hr = m_pClient->Initialize();

選擇通訊類型與裝置

預設啟用所有媒體類型(RTCMT_ALL)。參與者平台效能與可用頻寬決定編解碼器:

  • 視訊:支援 H.261、H.263 (QCIF 176×144),6~125 Kbps 可變位元率。可用 put_MaxBitRate、put_TemporalSpatialTradeOff 調整品質。
  • 音訊:支援 G.711、G.722.1、G.723、GSM、DVI4、SIREN 等,由雙端協商決定。

裝置調校:呼叫 InvokeTuningWizard() 顯示攝影機/麥克風調校嚮導。

攝影機調校嚮導 麥克風調校嚮導

初始化會話與事件處理

設定事件過濾器(put_EventFilter),建立事件接收物件(CRTCEvents),註冊 IRTCEventNotification,啟用監聽模式(RTCLM_BOTH 開啟 SIP port 5060 及動態 port)。

long lEventMask = RTCEF_SESSION_STATE_CHANGE | RTCEF_MESSAGING | RTCEF_MEDIA | RTCEF_INTENSITY | RTCEF_CLIENT;
hr = m_pClient->put_EventFilter(lEventMask);
m_pEvents = new CRTCEvents;
hr = m_pEvents->Advise(m_pClient, m_hWnd);
hr = m_pClient->put_ListenForIncomingSessions(RTCLM_BOTH);

事件處理範例:

  • 媒體事件:取得媒體類型、事件類型、原因,轉交會話視窗。
  • 音量事件:取得裝置方向、層級、最小/最大值,更新 UI。
  • 即時訊息事件:取得會話、參與者、訊息內容或狀態,顯示於聊天視窗。
  • 會話狀態變更:來電時播放鈴聲、自動應答、建立會話。

建立通訊會話

透過 CreateSession 建立會話,AddParticipant 加入參與者(以 IP 或 SIP URI)。注意:首版僅支援多方電話會議,不支援多方視訊。

hr = m_pClient->CreateSession(enType, NULL, NULL, 0, &pSession);
hr = pSession->AddParticipant(bstrURI, NULL, &m_Participant);

應用程式共享與白板

一行程式碼啟動:StartT120Applet(RTCTA_APPSHARING) 或 StartT120Applet(RTCTA_WHITEBOARD)。

關閉會話與效能數據

關閉所有 T120 應用程式,呼叫 ShutDown()。效能測試(1 GHz PIII / 2.2 GHz P4)顯示:

功能PIIIP4
純音視訊9%22%
+應用程式共享10%35%
+白板12%37%
+即時訊息12%37%

結語

RTC Client API 讓 Windows XP 下的通訊工具開發變得簡單,現有會議軟體可快速整合豐富功能,統一協議提升互通性。結合 Intel 處理器與 Windows XP,帶給使用者創新體驗。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved