WEB开发网
开发学院软件开发VC 用微软的实时通信API集成丰富的客户端通信 阅读

用微软的实时通信API集成丰富的客户端通信

 2010-07-15 20:45:25 来源:WEB开发网   
核心提示:初始化会话在应用程序与其他参与者连接之前,它必须能够处理会话中的RTC事件,用微软的实时通信API集成丰富的客户端通信(3),PC-to-PC的通信中,应用程序捕获即时消息事件、音量事件、媒体事件、客户端消息事件和会话状态改变事件,当例子程序接收到RTC事件时,应用程序的事件处理者就对应用程序的消息处理者发一个消息,下

初始化会话

在应用程序与其他参与者连接之前,它必须能够处理会话中的RTC事件。PC-to-PC的通信中,应用程序捕获即时消息事件、音量事件、媒体事件、客户端消息事件和会话状态改变事件。下述代码展示了怎样创建一个事件过滤器来捕获RTC客户端的特定事件。

lEventMask设置了一组应用程序感兴趣的事件。(为获得全部的事件列表,可在 MSDN 站点搜索RTC_EVENT,这样可以获得关于每一事件的更多信息。)CRTCEvents 类在客户端之间分配事件。RTCEvents 对象在应用程序和 IRTCEventNotification 接口之间创建接口。所有的RTC事件由RTCEvents 类处理。

// Set the event filter to listen for RTC events
  // Using RTCEF_ALL will listen for all events
  // For the sample application, we will demonstrate how to set the
  // event listener for a limited set of events.
  long lEventMask = RTCEF_SESSION_STATE_CHANGE |
         RTCEF_MESSAGING |
         RTCEF_MEDIA |
         RTCEF_INTENSITY |
         RTCEF_CLIENT;
  hr = m_pClient->put_EventFilter( lEventMask );
  // Create the event sink object
  m_pEvents = new CRTCEvents;
  // initialize the event handler
  hr = m_pEvents->Advise( m_pClient, m_hWnd );
  // Set the listen mode for RTC client
  // RTCLM_BOTH opens the standard SIP port 5060, as well as
  // a dynamic port.
  hr = m_pClient->put_ListenForIncomingSessions(RTCLM_BOTH);

音视频的媒体类型可在会话过程中添加或删除,因此客户端必须能监听这些类型的事件。在"处理实时流会话事件"这一节中可获得关于状态改变和事件处理的更多信息。 

处理RTC事件

一旦事件处理者 IRTCEventNotification 接收器中进行了注册,接收和处理RTC事件就变得相当的容易了。当例子程序接收到RTC事件时,应用程序的事件处理者就对应用程序的消息处理者发一个消息。OnRTCEvent() 处理应用程序接收到的所有事件。

OnRTCEvent(UINT message, WPARAM wParam, LPARAM lParam)
{
  // Based on the RTC_EVENT type, query for the
  // appropriate event interface and call a helper
  // method to handle the event
  switch ( wParam )
  {
    ...
    case RTCE_MEDIA:
      {
        IRTCMediaEvent * pEvent = NULL;
        hr = pDisp->QueryInterface( IID_IRTCMediaEvent,
                      (void **)&pEvent );
        if (SUCCEEDED(hr))
        {
          OnRTCMediaEvent(pEvent);
          SAFE_RELEASE(pEvent);
        }
      }
      break;
    ...
}

上一页  1 2 3 4 5 6  下一页

Tags:微软 实时 通信

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