freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

動態(tài)語音視頻傳輸技術(shù)的研究及實現(xiàn)終稿畢業(yè)論文(編輯修改稿)

2025-07-16 12:31 本頁面
 

【文章內(nèi)容簡介】 事件類型。lEventMask設(shè)置了應(yīng)用程序感興趣的一組事件。CRTCEvents類為附屬的客戶端發(fā)送事件。RTCEvents對象在應(yīng)用程序和IRTCEventNotification接口之間創(chuàng)建一個接口。所有的實時通信事件將由RTCEvents類處理。//初始化實時通信客戶端HRESULT CAVDConfDlg::InitRTCClient(){ //創(chuàng)建RTC客戶端 HRESULT hr。 m_pClient = NULL。 m_pEvents = NULL。 //當(dāng)前線程中初始化COM庫 hr = CoInitialize(NULL)。 if (FAILED(hr)) { return hr。 } //初始RTC COM對象 hr = CoCreateInstance (CLSID_RTCClient, NULL, CLSCTX_INPROC_SERVER, IID_IRTCClient, (LPVOID *)amp。m_pClient)。 if (FAILED(hr)) { return hr。 } //初始化客戶端接口 hr = m_pClientInitialize()。 if (FAILED(hr)) { SAFE_RELEASE(m_pClient)。 return hr。 } //設(shè)置選擇的媒體類型 //使用RTCMT_ALL參數(shù)將會初始化視頻、 m_pClientSetPreferredMediaTypes ( RTCMT_ALL, VARIANT_TRUE )。 //設(shè)置事件過濾器來監(jiān)聽RTC事件 long lEventMask = RTCEF_SESSION_STATE_CHANGE | RTCEF_MEDIA | RTCEF_INTENSITY | RTCEF_CLIENT。 //初始化本程序需要函數(shù)的事件過濾器 hr = m_pClientput_EventFilter( lEventMask )。 if ( FAILED(hr) ) { SAFE_RELEASE(m_pClient)。 return hr。 } //創(chuàng)建事件接受對象 m_pEvents = new CRTCEvents。 if (!m_pEvents) { SAFE_RELEASE(m_pClient)。 return hr。 } //初始化事件處理器 hr = m_pEventsAdvise( m_pClient, m_hWnd )。 if ( FAILED(hr) ) { SAFE_RELEASE(m_pClient)。 return hr。 } //設(shè)置為RTC客戶端模式 //使用RTCLM_BOTH參數(shù)打開標(biāo)注的SIP端口5060,同時打開一個動態(tài)的端口 hr = m_pClientput_ListenForIningSessions(RTCLM_BOTH)。 if ( FAILED(hr) ) { SAFE_RELEASE(m_pClient)。 return hr。 } //初始化IDLE的狀態(tài)自動機 if (m_AVDlg) (RTCSS_IDLE)。 return S_OK。}LRESULT CAVDConfDlg::WindowProc(UINT message, WPARAM wParam, LPARAM lParam) { switch (message) { case WM_RTC_EVENT: OnRTCEvent (message, wParam, lParam)。 break。 } return CDialog::WindowProc(message, wParam, lParam)。} 處理實時通信事件一旦事件處理器被IRTCEventNotification接收端注冊,那么接收和處理實時通信事件就非常簡單。當(dāng)實時通信事件被樣例應(yīng)用程序接收的時候,應(yīng)用程序的事件處理程序發(fā)送一個消息到這個應(yīng)用程序的消息處理程序。OnRTCEvent()函數(shù)處理所有的由應(yīng)用程序接收的所有的不同類型的事件。//對實時會話的事件處理HRESULT CAVDConfDlg::OnRTCEvent(UINT message, WPARAM wParam, LPARAM lParam){ IDispatch * pDisp = (IDispatch *)lParam。 RTC_EVENT enEvent = (RTC_EVENT)wParam。 HRESULT hr。 //根據(jù)RTC_EVENT的,查閱例行的時間接口并且調(diào)用一個helper方法來處理事件 switch ( wParam ) { case RTCE_SESSION_STATE_CHANGE: //實時會話狀態(tài)改變事件 { IRTCSessionStateChangeEvent * pEvent = NULL。 hr = pDispQueryInterface( IID_IRTCSessionStateChangeEvent, (void **)amp。pEvent )。 if (SUCCEEDED(hr)) { OnRTCSessionStateChangeEvent(pEvent)。 //調(diào)用實時會話狀態(tài)改變處理函數(shù) SAFE_RELEASE(pEvent)。 } } break。 case RTCE_MEDIA: //實時會話媒體事件 { IRTCMediaEvent * pEvent = NULL。 hr = pDispQueryInterface( IID_IRTCMediaEvent, (void **)amp。pEvent )。 if (SUCCEEDED(hr)) { OnRTCMediaEvent(pEvent)。 //調(diào)用實時會話媒體事件處理函數(shù) SAFE_RELEASE(pEvent)。 } } break。 case RTCE_INTENSITY: //實時會話強度事件 { IRTCIntensityEvent * pEvent = NULL。 hr = pDispQueryInterface( IID_IRTCIntensityEvent, (void **)amp。pEvent )。 if (SUCCEEDED(hr)) { OnRTCIntensityEvent(pEvent)。 //調(diào)用實時會話強度事件處理函數(shù) SAFE_RELEASE(pEvent)。 } } break。 case RTCE_CLIENT: //實時會話客戶事件 { IRTCClientEvent * pEvent = NULL。 hr = pDispQueryInterface( IID_IRTCClientEvent, (void **)amp。pEvent )。 if (SUCCEEDED(hr)) { OnRTCClientEvent(pEvent)。 //調(diào)用實時會話客戶事件處理函數(shù) SAFE_RELEASE(pEvent)。 } } break。 } SAFE_RELEASE(pDisp)。 return S_OK。} 創(chuàng)建一個通信會話在使用實時通信之前,必須創(chuàng)建和初始化一個通信會話。然后就可以輸入?yún)⑴c者的IP地址來開始通話了。也可以通過輸入一個電子郵件地址或者一個電話號碼來激活一個通信會話。然而,這個函數(shù)而要SIP注冊服務(wù)器。實時通信不支持多個視頻會議會話同時運行,所以這個應(yīng)
點擊復(fù)制文檔內(nèi)容
法律信息相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1