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

正文內(nèi)容

網(wǎng)絡(luò)視頻聊天工具的設(shè)計與實現(xiàn)畢業(yè)論文(參考版)

2025-06-28 00:40本頁面
  

【正文】 將視頻語音信息在客戶端顯示出來,如圖 12 所示。表 1 視頻幀的格式幀開始標(biāo)志 幀大小 幀編號 幀類型 幀數(shù)據(jù)0 4 8 12 13 2022處理視頻傳輸如圖 11 所示。為了在接收端能夠方便地提取出一幀,提出如表 1 所示的格式組建幀。通過 Winsock實現(xiàn)壓縮后的視頻數(shù)據(jù)在局域網(wǎng)中的實時傳輸,接收完的數(shù)據(jù)交給 Divx 解碼器,以幀的格式解壓,最后實現(xiàn)視頻顯示。return MMSYSERR_NOERROR。 return mmResult。//寫數(shù)據(jù)(放音)if(mmResult){delete lpHdr。return mmResult。 //為回放設(shè)備準(zhǔn)備內(nèi)存塊if(mmResult){delete lpHdr。lpHdrdwBufferLength = length。CopyMemory(p,(char*)lParam,length)。}ZeroMemory(lpHdr,sizeof(WAVEHDR))。if(!p) {delete lpHdr。if(!lpHdr)return FALSE。if(length=0) return FALSE。int length=(int) wParam。MMRESULT mmResult = FALSE。}return TRUE。}mmReturn = ::waveInStart(m_hRecord)。 i++){//為錄音設(shè)備準(zhǔn)備緩存mmReturn = ::waveInPrepareHeader(m_hRecord,rechead[i], sizeof(WAVEHDR))。if(mmReturn==MMSYSERR_NOERROR ){for(int i=0。m_WaveFormatEx, ::GetCurrentThreadId(), 0, CALLBACK_THREAD)。//打開錄音設(shè)備MMRESULT mmReturn = ::waveInOpen( amp。 語音錄制在音頻的錄制和播放時,采用的用戶界面線程來處理,是 CWinThread 對象,根據(jù)前面線程的介紹,一步一步的來實現(xiàn)。視頻對話框都在視頻捕獲驅(qū)動中定義。}return TRUE。 capDriverDisconnect(m_capwnd)。return FALSE。// (\n Unable to connect driver to the window)。amp。amp。amp。// Connect to webcam driver//使一個捕獲窗口與一個捕獲設(shè)備連接或關(guān)聯(lián)ret3 = capDriverConnect(m_capwnd,index)。//Change destroy functions also........ ret1 = capSetCallbackOnVideoStream(m_capwnd,OnCaptureVideo)。if(!m_capwnd){return FALSE。 TRACE(VideoCapture::Initialize\n)。 int index=0。該尺寸由視頻捕獲設(shè)備的格式和視頻對話框決定。由于其信息是動態(tài)的,每當(dāng)捕獲的視頻流的尺寸發(fā)生改變,程序應(yīng)該在獲取捕獲設(shè)備的視頻格式以后及時進(jìn)行刷新。捕獲窗口的狀態(tài),用 capGetStatus 函數(shù)來獲得當(dāng)前捕獲窗口的狀態(tài),得到一個 CAPSTATUS 結(jié)構(gòu)的拷貝。再利用 capDriverGetName 函數(shù)來得到捕獲設(shè)備的名稱將獲得的版本發(fā)送到 capDriverGetVersion。} 捕獲窗口在捕獲前必須創(chuàng)建一個捕獲窗口(Capture Widnow) ,下面介紹有關(guān)捕獲窗口的情況:創(chuàng)建一個 AVICap 捕獲窗口,用 capCreateCaptureWindow 函數(shù)并返回一個句柄。Sleep(500)。}//終止一個捕獲任務(wù)BOOL VideoCapture::StopCapture(){capCaptureStop(m_capwnd)。// (\n Video parameters set properly)。BOOL ret=capSetVideoFormat(m_capwnd,amp。=IMAGE_WIDTH。}// Set Video Format capGetVideoFormat(m_capwnd,amp。CapParms,sizeof(CapParms))){// (\n Failed to set the capture parameters )。 = 80。 = TRUE。//得到當(dāng)前的捕獲速度 = FALSE。capCaptureGetSetup(m_capwnd,amp。使用 capCaptureGetSetup 宏來得到當(dāng)前的設(shè)置值。設(shè)置終止捕獲,同樣通過使用 capCaptureGetSetup 宏來得到當(dāng)前的設(shè)置,當(dāng)前按鍵設(shè)置保存在 CAPTUREPARAMS 結(jié)構(gòu)的 vKeyAbort 成員中,鼠標(biāo)設(shè)置保存在 fAbortLeftMouse 和 fAbortRightMouse 成員中,通過修改可以設(shè)置新的熱健或者鼠標(biāo)左右鍵,修改完成后,使用 capCaptureSetSetup 宏來進(jìn)行更新?;镜牟东@設(shè)置包括設(shè)置捕獲速度(每秒捕獲多少幀) 、是否同時捕獲聲頻、捕獲緩沖、允許最大丟失多少幀和是否使用 DOS 內(nèi)存,以及使用鍵盤的哪個鍵或鼠標(biāo)的哪個鍵來終止捕獲等內(nèi)容,這些設(shè)置使用 CAPTUREPARAMS 結(jié)構(gòu)來描述,capCaptureGetSetup 宏來得到當(dāng)前的設(shè)置,然后改變此結(jié)構(gòu)的成員變量,再使用 capCaptureSetSetup宏設(shè)置新的設(shè)置。然后再通過 Winsock 將壓縮后的數(shù)據(jù)發(fā)送到另一客戶端。窗口類為捕獲數(shù)字視頻流及其相關(guān)操作提供了很大的方便,靈活編寫其中的回調(diào)函數(shù)可滿足實時視頻傳輸?shù)男枰?,例如?yīng)用程序可直接從緩沖中取得數(shù)字視頻并對其進(jìn)行壓縮編碼后實時地傳到遠(yuǎn)端的客戶端。(6)結(jié)束捕捉:結(jié)束捕捉是應(yīng)該有一些清除工作。一般視頻驅(qū)動程序允許設(shè)置的參數(shù)包括視頻源選擇、視頻格式、視頻顯示格式等。(3)視頻捕獲初始化。圖 10 UDP 套接字的使用 視頻的捕獲利用 VFW 接口,視頻捕獲可以分為以下幾個步驟:(1)建立視頻采集窗口:該窗口用來接收視頻捕捉驅(qū)動程序傳來的數(shù)據(jù)和消息。}在聊天兩個客戶端的信息情況如圖 8 和圖 9 所示。AddReceiver(szUserName , true)。m_csClientSendM(amp。(szUserName)。return 。return 。GetDlgItemText(IDC_USERNAME,szUserName)。CMesg msg。}CString str。圖 7 服務(wù)器響應(yīng)文字聊天信息中轉(zhuǎn)ChatClient 客戶端兩兩間進(jìn)行文字聊天時,發(fā)送信息的處理函數(shù)如下:void CChatClientDlg::OnChatBtSend() //發(fā)送信息按鍵{if( !m_bConnect){SetMessageBox(請連接服務(wù)器!\r\n)。在對鏈表進(jìn)行操作的同時,要更新 list 列表中的信息。每一個 ChatClient 客戶端啟動時,利用服務(wù)器內(nèi)定的用戶號和密碼來登錄(如圖 6)。圖 5 TCP 套接字的使用 文字聊天實現(xiàn)ChatServer 服務(wù)器運(yùn)行時,利用一個 CSocket 對象 CSocketServer 啟動服務(wù)器,用函數(shù) gethostname 來獲得服務(wù)器端主機(jī)名和 IP,同時在服務(wù)器對話框中顯示服務(wù)器 IP,并將分配的固定端口號 8123 顯示在對話框中。服務(wù)器端調(diào)用 Accept,客戶端調(diào)用 Connect,然后創(chuàng)建一個 CsocketFile 去關(guān)聯(lián) CSocket。要使用 CSocket 對象,首先要調(diào)用構(gòu)造函數(shù),然后調(diào)用 Create 函數(shù)創(chuàng)建一個 Socket 句柄。創(chuàng)建 CSocket 對象 CSocketServer 來處理服務(wù)器端與客戶端的連接,CSocket 繼承于 CasyncSocket,是 Windows Socket API 的高層抽象。圖 3 文字聊天流程圖圖 4 語音視頻聊天流程圖第五章 系統(tǒng)的詳細(xì)設(shè)計 文字聊天 TCP 套接字的運(yùn)用在文字聊天時,服務(wù)器端與客戶端的連接是采用的 TCP 套接節(jié)進(jìn)行連接。整個系統(tǒng)的功能模塊圖如圖 2。 系統(tǒng)功能模塊圖該系統(tǒng)分為服務(wù)器端和客戶端,完成了文字聊天和語音視頻聊天,使用上只有文字聊天時才會通過服務(wù)器端,而對于語音視頻聊天就只需要對整個在線客戶端兩兩之間進(jìn)行點(diǎn)對點(diǎn)的視頻聊天。在文字聊天的基礎(chǔ)上,客戶端之間自行處理的語音視頻聊天,運(yùn)用 VFW 函數(shù)庫中的函數(shù)對 USB 口輸入的數(shù)字視頻信息進(jìn)行相關(guān)處理 ,比如: 視頻捕獲、影像壓縮以及影像播放等,同時利用線程來處理聲音部分的錄制、回放等。當(dāng)有用戶退出時,服務(wù)器做出響應(yīng),提示在線用戶,用戶下線。(1)文字聊天:文字聊天采用的是 TCP 模式,包括服務(wù)器端和客戶端。在圖中,為了簡便,沒有畫出麥克風(fēng)、音箱或耳機(jī)等外部設(shè)備。第四章 系統(tǒng)結(jié)構(gòu) 硬件結(jié)構(gòu)該系統(tǒng)采用的是 Server/Client 結(jié)構(gòu),服務(wù)器端是一臺 PC 機(jī),而客戶端是 PC 機(jī)和一個數(shù)字?jǐn)z像頭、耳機(jī)和麥克風(fēng)。這樣,兩個用戶就實現(xiàn)了點(diǎn)對點(diǎn)的語音視頻聊天。兩個用戶要進(jìn)行語音視頻聊天時,一個用戶選中另一個用戶的用戶名,根據(jù)該用戶名在后臺鏈表中的對應(yīng) IP 地址查找用戶并請求視頻連接。只有當(dāng)有兩個以上的用戶啟動客戶端時,才可以進(jìn)行文字聊天,聊天內(nèi)容要經(jīng)過服務(wù)器中轉(zhuǎn),分別在服務(wù)器端和兩個聊天的客戶端顯示聊天。而視頻聊天系統(tǒng)本身對帶寬的要求為 62kbit/s~2Mbit/s,但是為了滿足流暢的視音頻效果,要求帶寬不低于 384kbit/s。因此,在設(shè)計上應(yīng)將網(wǎng)絡(luò)上的丟包率控制在 1%以內(nèi)。(3)時延抖動,由于音頻/視頻的傳輸為實時的交互,因此網(wǎng)絡(luò)的時延抖動更為重要,一般,視頻聊天的時延抖動控制在 50ms 內(nèi)。(1)網(wǎng)絡(luò)帶寬需求,視頻聊天對網(wǎng)絡(luò)的帶寬需求為“視頻帶寬+IP 包頭開銷”,計算方法為:網(wǎng)絡(luò)帶寬 = 視頻帶寬 。文字、語音視頻聊天作為一種廣泛的網(wǎng)絡(luò)應(yīng)用對其基礎(chǔ)的承載網(wǎng)絡(luò)環(huán)境有著較高的網(wǎng)絡(luò)要求。如何來滿足局域網(wǎng)內(nèi)部用戶的通訊要求,在考慮到網(wǎng)絡(luò)帶寬的同時,提高視頻清晰度,動態(tài)畫面的流暢,語音的實時傳輸?shù)?,正是現(xiàn)代社會通訊所必需的。第三章 需求分析 軟硬件環(huán)境電腦兩臺以上,分別配有攝像頭、麥克風(fēng)、音箱或耳機(jī)等外部設(shè)備;Windows XP系統(tǒng),Microsoft Visual Studio 編程開發(fā)系統(tǒng)等。如果你對一個線程連續(xù)若干次執(zhí)行 SuspendThread() ,則需要連續(xù)執(zhí)行相應(yīng)次的 ResumeThread()來恢復(fù)線程的運(yùn)行。最后調(diào)用 AfxBeginThread()函數(shù)的一個版本:CWinThread* AfxBeginThread (CRuntimeClass* pThreadClass,int nPriority=THREAD_PRIORITY_NORMAL,UINT nStackSize = 0, DWORD dwCreateFlags = 0, LPSECURITY_ATTRIBUTES lpSecurityAttrs = NULL)啟動該用戶界面線程,其中第一個參數(shù)為指向定義的用戶界面線程類指針變量,第二個參數(shù)為線程的優(yōu)先級,第三個參數(shù)為線程所對應(yīng)的堆棧大小,第四個參數(shù)為線程創(chuàng)建時的附加標(biāo)志,缺省為正常狀態(tài),如為 CREATE_SUSPENDED 則線程啟動后為掛起狀態(tài)。這里主要介紹用戶界面線程的運(yùn)用:(1)線程的啟動創(chuàng)建一個用戶界面線程,首先要從類 C
點(diǎn)擊復(fù)制文檔內(nèi)容
醫(yī)療健康相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1