資源描述:
《多媒體網絡通信技術大作業(yè)》由會員上傳分享,免費在線閱讀,更多相關內容在行業(yè)資料-天天文庫。
1、多媒體網絡通信技術大作業(yè)電信1203朱銀嘯01212093103091、題目:基于局域網的可視對講系統(tǒng)設計2、系統(tǒng)開發(fā)環(huán)境與工具:(1)、硬件環(huán)境:實驗室局域網(2)、軟件環(huán)境:WindowsXP操作系統(tǒng)(3)、開發(fā)工具:自己熟悉的面向對象的網絡通信編程工具與平臺,相關音頻、視頻編碼與傳輸協(xié)議類庫3、要求與評分標準:(1)要求:在以上硬軟件環(huán)境下,利用合適的開發(fā)工具,設計一套可視對講軟件,實現局域網內兩臺計算機之間的可視對講功能,要求音視頻信號連續(xù)性、實時性較好,滿足正常交流需要。(2)評分標準
2、系統(tǒng)原理分析(20分)1.系統(tǒng)原理概述(10分)2.關鍵技術分析(10分)系統(tǒng)總體方案設計(30分)1.按模塊化設計要求畫系統(tǒng)結構圖(15分)2數據流分析(15分)系統(tǒng)具體設計(30分)呼叫處理模塊流程圖與關鍵代碼(6分)音視頻采集與播放模塊流程圖與關鍵代碼(6分)音視頻處理(編解碼)模塊流程圖與關鍵代碼(6分)音視頻封包與解析模塊流程圖與關鍵代碼(6分)音視頻發(fā)送與接收模塊流程圖與關鍵代碼(6分)系統(tǒng)測試與評價(20)實現語音通信(6分)實現視頻通信(6分)實現音視頻同步(8分)代碼客戶端請求
3、連接線程(呼叫處理)關鍵代碼如下:DWORDWINAPIConnectThreadFunc(LPVOIDpParam){CChatRoomDlg*pChatRoom=(CChatRoomDlg*)pParam;ASSERT(pChatRoom!=NULL);pChatRoom->m_ConnectSock=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);if(pChatRoom->m_ConnectSock==INVALID_SOCKET){AfxMessageB
4、ox(_T("新建Socket失敗!"));returnFALSE;}CStringstrServIp;pChatRoom->GetDlgItemText(IDC_IP_ADDR,strServIp);intiPort=pChatRoom->GetDlgItemInt(IDC_CONNECT_PORT);if(iPort<=0
5、
6、iPort>65535){AfxMessageBox(_T("請輸入合適的端口:1-65535"));goto__Error_End;}charszIpAddr[16]
7、={0};USES_CONVERSION;strcpy_s(szIpAddr,16,T2A(strServIp));sockaddr_inserver;server.sin_family=AF_INET;server.sin_port=htons(iPort);server.sin_addr.s_addr=inet_addr(szIpAddr);if(connect(pChatRoom->m_ConnectSock,(structsockaddr*)&server,sizeof(structso
8、ckaddr))==SOCKET_ERROR){AfxMessageBox(_T("連接失敗,請重試!"));goto__Error_End;}pChatRoom->ShowMsg(_T("系統(tǒng)信息:連接服務器成功!"));while(TRUE){if(SOCKET_Select(pChatRoom->m_ConnectSock)){TCHARszBuf[MAX_BUF_SIZE]={0};intiRet=recv(pChatRoom->m_ConnectSock,(char*)szBuf,MA
9、X_BUF_SIZE,0);if(iRet>0){pChatRoom->ShowMsg(szBuf);}else{pChatRoom->ShowMsg(_T("聊天服務器已停止,請重新進行連接!"));break;}}Sleep(500);}__Error_End:closesocket(pChatRoom->m_ConnectSock);returnTRUE;}//捕獲窗口BOOLVideoCapture::Initialize(){chardevname[128]={0},devversio
10、n[128]={0};intindex=0;BOOLret=TRUE,ret1=TRUE,ret2=TRUE,ret3=TRUE;TRACE("VideoCapture::Initialize");//創(chuàng)建一個AVICap捕獲窗口m_capwnd=capCreateCaptureWindow("Capture",WS_POPUP,0,0,1,1,0,0);if(!m_capwnd){returnFALSE;}//connectcallbackfunctionsret=capSetUserDa