基于網(wǎng)絡(luò)的語(yǔ)音視頻多人聊天系統(tǒng)_第1頁(yè)
基于網(wǎng)絡(luò)的語(yǔ)音視頻多人聊天系統(tǒng)_第2頁(yè)
基于網(wǎng)絡(luò)的語(yǔ)音視頻多人聊天系統(tǒng)_第3頁(yè)
基于網(wǎng)絡(luò)的語(yǔ)音視頻多人聊天系統(tǒng)_第4頁(yè)
基于網(wǎng)絡(luò)的語(yǔ)音視頻多人聊天系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩7頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、基于網(wǎng)絡(luò)的語(yǔ)音視頻多人聊天系統(tǒng)論文導(dǎo)讀::基于網(wǎng)絡(luò)的語(yǔ)音視頻多人聊天系統(tǒng),畢業(yè)論文怎么寫。論文關(guān)鍵詞:基于網(wǎng)絡(luò)的語(yǔ)音視頻多人聊天系統(tǒng)隨著網(wǎng)絡(luò)技術(shù)和多媒體技術(shù)的開(kāi)展,網(wǎng)上聊天室已經(jīng)不再局限于文字聊天,網(wǎng)民和聊友們更希望的是聊天有實(shí)時(shí)性,互動(dòng)性、趣味性。在文字聊天的同時(shí)能夠通過(guò)視頻和語(yǔ)音更好的交流、增強(qiáng)實(shí)時(shí)性、互動(dòng)性和趣味性已經(jīng)成了一個(gè)很迫切的需要。2課題的相關(guān)理論和技術(shù)2.1 UDP協(xié)議UDP協(xié)議是英文UserDatagramProtocol的縮寫,即用戶數(shù)據(jù)報(bào)協(xié)議,主要用來(lái)支持那些需要在計(jì)算機(jī)之間傳輸數(shù)據(jù)的網(wǎng)絡(luò)應(yīng)用。包括網(wǎng)絡(luò)視頻會(huì)議系統(tǒng)在內(nèi)的眾多的客戶/效勞器模式的網(wǎng)絡(luò)應(yīng)用都需要使用UDP協(xié)議

2、。與我們所熟知的TCP傳輸控制協(xié)議協(xié)議一樣,都屬于傳輸層協(xié)議。UDP協(xié)議使用報(bào)頭中的校驗(yàn)值來(lái)保證數(shù)據(jù)的平安。校驗(yàn)值首先在數(shù)據(jù)發(fā)送方通過(guò)特殊的算法計(jì)算得出,在傳遞到接收方之后,還需要再重新計(jì)算。如果某個(gè)數(shù)據(jù)報(bào)在傳輸過(guò)程中被第三方篡改或者由于線路噪音等原因受到損壞,發(fā)送和接收方的校驗(yàn)計(jì)算值將不會(huì)相符,由此UDP協(xié)議可以檢測(cè)是否出錯(cuò)。2.2 MPEG4壓縮算法MPEG-4于1998年10月定案,在1999年1月成為一個(gè)國(guó)際性標(biāo)準(zhǔn),隨后為擴(kuò)展用途又進(jìn)行了第二版的開(kāi)發(fā),于1999年底結(jié)束。MPEG-4主要應(yīng)用于視像 VideoPhone,視像電子郵件VidoEmail和電子新聞Electronicnew

3、s等畢業(yè)論文怎么寫,對(duì)傳輸速率要求較低,在4800-64000bits/sec之間。利用很窄的帶寬,通過(guò)幀重建技術(shù),壓縮和傳送資料,以求以最少的數(shù)據(jù)獲得最正確的圖像質(zhì)量。MPEG-4的特點(diǎn)是其更適于交互AV效勞以及遠(yuǎn)程監(jiān)控。這是一個(gè)有交互性的動(dòng)態(tài)圖像標(biāo)準(zhǔn)論文下載。 如圖1。圖 1:標(biāo)準(zhǔn)運(yùn)動(dòng)補(bǔ)償視頻編碼視頻編解碼器中,單個(gè)幀可以采用三個(gè)模式中的一個(gè)進(jìn)行編碼 即 I、P 或 B 幀模式見(jiàn)圖 2。幾個(gè)稱為 Intra (I) 的幀單獨(dú)編碼,無(wú)需參考任何其他幀無(wú)運(yùn)動(dòng)補(bǔ)償。某些幀可以利用 MC 編碼,以前一個(gè)幀為參考前向預(yù)測(cè)。這些幀稱為預(yù)測(cè)幀 (P)。B 幀或雙向預(yù)測(cè)幀通過(guò)之前的幀以及當(dāng)前幀的后續(xù)幀進(jìn)行

4、預(yù)測(cè)。B 幀的優(yōu)勢(shì)是能夠匹配堵塞在采用前向預(yù)測(cè)的上一幀中的背景區(qū)域。雙向預(yù)測(cè)通過(guò)平衡前向及后向預(yù)測(cè)可以降低噪聲。圖2:I、P 與 B 幀間預(yù)測(cè)圖示 MPEG-4【6】由 ISO 提出,以延續(xù) MPEG-2 的成功。一些早期的目標(biāo)包括:提高容錯(cuò)能力以支持無(wú)線網(wǎng)、對(duì)低比特率應(yīng)用進(jìn)行更好的支持、實(shí)現(xiàn)各種新工具以支持圖形對(duì)象及視頻之間的融合。大局部圖形功能并未在產(chǎn)品中受到重視,相關(guān)實(shí)施主要集中在改善低比特率壓縮及提高容錯(cuò)性上。2.3組件技術(shù)組件技術(shù)就是利用某種編程手段,將一些人們所關(guān)心的,但又不便于讓最終用戶去直接操作的細(xì)節(jié)進(jìn)行了封裝,同時(shí)對(duì)各種業(yè)務(wù)邏輯規(guī)那么進(jìn)行了實(shí)現(xiàn),用于處理用戶的內(nèi)部操作細(xì)節(jié),甚

5、至于將平安機(jī)制和事物機(jī)制表達(dá)的淋漓盡止。而這個(gè)封裝體就常常的被我們稱作組件。2.4C/S結(jié)構(gòu)C/S Client/Server結(jié)構(gòu),即大家熟知的客戶機(jī)和效勞器結(jié)構(gòu)。它是軟件系統(tǒng)體系結(jié)構(gòu),通過(guò)它可以充分利用兩端硬件環(huán)境的優(yōu)勢(shì),將任務(wù)合理分配到Client端和Server端來(lái)實(shí)現(xiàn),降低了系統(tǒng)的通訊開(kāi)銷。3 需求分析系統(tǒng)主要由以下幾個(gè)模塊構(gòu)成:即時(shí)通訊客戶端:包括一個(gè)即時(shí)通訊、房間大廳和聊天室,在即時(shí)通訊中用戶可以添加自己的好友并根據(jù)自己的需要將好友分組,與自己的好友進(jìn)行文字聊天、發(fā)送動(dòng)畫(huà)表情以及語(yǔ)音視頻聊天,支持離線留言和系統(tǒng)消息;在聊天室中可以進(jìn)行一對(duì)多語(yǔ)音視頻聊天,送禮等娛樂(lè)活動(dòng)。即時(shí)通訊效勞

6、端:完成用戶登錄、添加好友以及一對(duì)一聊天等客戶端請(qǐng)求效勞的應(yīng)答。聊天室效勞端:完成用戶新建房間、查找房間、以及在聊天室里進(jìn)行一對(duì)多語(yǔ)音視頻聊天等請(qǐng)求效勞的應(yīng)答。4系統(tǒng)設(shè)計(jì)4.1 系統(tǒng)設(shè)計(jì)根本原那么本系統(tǒng)的最終目標(biāo)是在Internet上能實(shí)現(xiàn)多人語(yǔ)音視頻的功能。清晰的語(yǔ)音視頻是本系統(tǒng)設(shè)計(jì)的最重要的功能。模塊化的設(shè)計(jì)方法:運(yùn)用Delphi的自定義組件技術(shù),通過(guò)自定義組件將功能模塊化,將各個(gè)組件獨(dú)立出來(lái),使其有很大的靈活性;界面的美觀,功能的實(shí)用是聊天軟件都應(yīng)該共性。系統(tǒng)平安可靠也是一個(gè)重要的設(shè)計(jì)原那么。由于客戶端與效勞端的通訊方式是發(fā)送也接收處理UDP包,所以,在UDP包的設(shè)計(jì)方面我做了很多工作,

7、在客戶端和效勞端都對(duì)UDP包加了驗(yàn)證。4.2 功能模塊圖本系統(tǒng)主要包括即時(shí)通訊客戶端、即時(shí)通訊效勞端、房間效勞端和視頻中轉(zhuǎn)端幾大模塊畢業(yè)論文怎么寫,結(jié)構(gòu)如圖3:圖3 總體結(jié)構(gòu)圖即時(shí)通訊客戶端和即時(shí)通訊效勞端主要功能如圖4:圖4 客戶端功能圖4.3 功能模塊設(shè)計(jì)整個(gè)系統(tǒng)分為即時(shí)通訊客戶端、房間客戶端、即時(shí)通訊效勞端、房間效勞端和視頻中轉(zhuǎn)站等幾大模塊。系統(tǒng)主要功能模塊具體描述如下:即時(shí)通訊客戶端是整個(gè)客戶端的主體,登錄后顯示的主界面即為即時(shí)通訊客戶端了,界面上包括個(gè)人信息,好友列表以及一些功能按鈕,房間客戶端的啟動(dòng)也由界面上的功能按鈕完成。即時(shí)通訊效勞端主要完成即時(shí)通訊客戶端的效勞請(qǐng)求,包括用戶注

8、冊(cè)、登錄、查找添加好友、單人文字聊天以及視頻聊天等。效勞端有用多線程技術(shù),然后由處理線程進(jìn)行必要的數(shù)據(jù)庫(kù)操作進(jìn)行處理,然后調(diào)用UDP發(fā)送線程進(jìn)行發(fā)送應(yīng)答論文下載。房間客戶端并不與即時(shí)通訊效勞器打交道,所有的請(qǐng)求都發(fā)送給房間效勞端。用戶在房間里可以進(jìn)行多人語(yǔ)音視頻聊天,或者進(jìn)行一對(duì)一的私聊。房間效勞端主要完成房間客戶端的效勞請(qǐng)求,包括用戶進(jìn)入房間后的通知消息、用戶上麥后的麥序消息、用戶進(jìn)行聊天時(shí)的消息轉(zhuǎn)發(fā)以及用戶送禮后進(jìn)行的數(shù)據(jù)庫(kù)操作等。視頻中轉(zhuǎn)端可以說(shuō)是整個(gè)系統(tǒng)的核心之一。為了讓房間里的用戶可以播放上麥用戶的音視頻,必須用視頻效勞器將這樣房間里的用戶收到創(chuàng)立數(shù)據(jù)庫(kù)AVChat,并創(chuàng)立如下表:(

9、1) 用戶表Users,保存用戶詳細(xì)信息,其結(jié)構(gòu)如表1。表1 Users(2) 音視頻通道表ServerAV,保存可用的音視頻通道,IM效勞端啟動(dòng)時(shí)從表中讀取通道并根據(jù)用戶的請(qǐng)求隨便分配,其結(jié)構(gòu)如表2。表2 ServerAv(3)房間分類表RoomClass,其結(jié)構(gòu)如表3。表3 RoomClass(4) 房間描述表RoomDesc,房間里的各種控件位置都可以由用戶自己設(shè)置,并將設(shè)置保存在效勞器上以實(shí)現(xiàn)個(gè)性化房間,其結(jié)構(gòu)如表4。表4 RoomDesc(5) 兌換表Exchange,用于保存各種禮品的兌換比例,其表結(jié)構(gòu)如表5。表5 Exchange(6)好友表Friend,用于保存用戶的好友信息。

10、其表結(jié)構(gòu)如表6。表6 Friend(7)好友分組表FriendGroup畢業(yè)論文怎么寫,用于保存用戶的好友分組信息,其表結(jié)構(gòu)如表7。表7 FriendGroup(8)禮品分類表Gift,用于保存系統(tǒng)提供的禮品信息,其表結(jié)構(gòu)如表8。表8 Gift(9)離線消息表OfflineMsg,用于保存用戶的離線消息,便于用戶上線時(shí)將離線消息發(fā)送給用戶,免于信息的喪失,其表結(jié)構(gòu)如表9。表9 OfflineMsg(10)房間信息表Room,用于保存房間的詳細(xì)信息,其表結(jié)構(gòu)如表10。表10 Room(11)房間黑名單表RoomBlackUser,用于保存在一定時(shí)間內(nèi)不能進(jìn)房間的用戶信息,其表結(jié)構(gòu)如表11。表11

11、 RoomBlackUser(12) 房間黑IP表RoomBlackIP,用于保存一定時(shí)間內(nèi)不能進(jìn)房間的用戶IP或IP段,其表結(jié)構(gòu)如表12。表12 RoomBlackIP(13) 用戶被踢表RoomDroped,用于保存房間內(nèi)用戶被踢的記錄,其表結(jié)構(gòu)如表13。表13 RoomDroped(14) 房間管理員表RoomManager,用于保存房間管理員的號(hào)碼,其表結(jié)構(gòu)如表14。表14 RoomManager(15) 用戶動(dòng)作表UserAction,用于保存用戶登錄系統(tǒng)的信息,如:上線、下線、退出等。其表結(jié)構(gòu)如表15。表15 UserAction(16) 用戶禮品表UserGift,用于保存用戶得

12、到的禮品信息。其表結(jié)構(gòu)如表16。表16 UserGift5 系統(tǒng)實(shí)現(xiàn)5.1 UDP通訊采用TCP/IP協(xié)議進(jìn)行通訊雖然穩(wěn)定性好也不會(huì)發(fā)生丟包事件,但是對(duì)于同時(shí)會(huì)有大量用戶進(jìn)行連接的系統(tǒng)來(lái)說(shuō)是不可取的,所以在該系統(tǒng)的通訊上采用的是無(wú)連接的UDP協(xié)議,不過(guò)由于UDP包的不可靠性,所以將WinSock的UDP套接字封裝,以實(shí)現(xiàn)大數(shù)據(jù)包的傳送,以及UDP包的超時(shí)重發(fā),以減低丟包的可能性。5.2 視頻捕捉及發(fā)送在進(jìn)行視頻捕捉之前必需要先創(chuàng)立一個(gè)捕捉窗口,并應(yīng)以此為根底進(jìn)行所有的捕捉及設(shè)置操作。捕捉窗體可用AVICap窗口類的CapCreateCaptureWindow;函數(shù)來(lái)創(chuàng)立畢業(yè)論文怎么寫,其窗口風(fēng)

13、格可設(shè)置為WSCHILD和WS_VISIBLE參數(shù),然后將捕捉窗口與設(shè)備相關(guān)聯(lián)取得視頻信號(hào),并調(diào)置視頻設(shè)備的屬性,最后使用捕捉窗回調(diào)函數(shù)來(lái)處理從設(shè)備捕捉到的視頻數(shù)據(jù),將視頻數(shù)據(jù)通過(guò)MPEG4算法壓縮后,然后再分解成小的UDP包發(fā)送出去論文下載。5.3 視頻接收客戶端收到必須將然后再通過(guò)MPEG4算法解壓縮后一幀一幀的畫(huà)到面板上去,當(dāng)每秒鐘畫(huà)的幀數(shù)多后就會(huì)形成活動(dòng)的畫(huà)面,并且在畫(huà)的過(guò)程中可以將圖片用一定的算法放大或縮小,以滿足用戶把視頻窗體放大或縮小時(shí)的顯示要求。收到小的UDP包后,根據(jù)包里的序列號(hào),將多個(gè)UDP包組裝成一個(gè)大的UDP包,然后才能將數(shù)據(jù)解壓縮成圖像。當(dāng)數(shù)據(jù)被解壓縮成一幀幀的圖像后

14、,先將幀圖像移動(dòng)到BITMAP中去,如果縮放比例為1:0,直接將源圖復(fù)制到顯示面板上,否那么的話根據(jù)比例用算法將圖進(jìn)行縮放操作后復(fù)制到顯示面板上。5.4 非主窗體最小化顯示在任務(wù)欄程序翻開(kāi)時(shí)任務(wù)欄里一般的只會(huì)顯示一個(gè)主窗體,而其它的非主窗體不會(huì)顯示在任務(wù)欄里,但在即時(shí)通訊里經(jīng)常會(huì)開(kāi)很多單聊的窗體或者是翻開(kāi)多個(gè)房間,如果這些翻開(kāi)的窗體不顯示在任務(wù)欄里將會(huì)帶來(lái)很大的不便,為了實(shí)現(xiàn)非主窗體最小化后顯示在任務(wù)欄里,必須添加窗體的擴(kuò)展風(fēng)格。5.5好友列表框重繪 在好友列表框里我們需要友好的顯示,包括選擇按鈕,用戶處于上線、離線等不同的在線狀態(tài)時(shí)頭像的顯示和用戶被選擇后的顯示等,而好友列表我們用的是一個(gè)T

15、reeView控件,但它無(wú)法到達(dá)我們要的效果,于是選擇將它重繪畢業(yè)論文怎么寫,這即是程序的重點(diǎn)也是難點(diǎn),如圖5:圖5 好友列表框選擇按鈕的重繪。當(dāng)一個(gè)好友被選中時(shí),友好的方式是把那一整欄全部選中,重繪時(shí)必須先得到整個(gè)結(jié)點(diǎn)的大小,然后設(shè)置邊框顏色和背景顏色進(jìn)行重繪。好友的頭像顯示,因?yàn)橐粋€(gè)好友的可能會(huì)有多種狀態(tài),如在線、不在線、離開(kāi)和隱身,不同的在線狀態(tài)肯定得有不同的頭像顯示,每種頭像只有一張圖片,離開(kāi)和隱身分別有二張圖片,當(dāng)好友處于離開(kāi)和隱身的狀態(tài)時(shí),除了繪出好友的頭像外,還得在頭像上面繪出離開(kāi)和隱身的圖片,當(dāng)好友處于不在線狀態(tài)時(shí),那么直接將頭像轉(zhuǎn)換為黑白圖片然后再繪出來(lái)。5.6 系統(tǒng)音量調(diào)節(jié)

16、6系統(tǒng)使用6.1 用戶登錄用戶點(diǎn)擊文件ChatTYQ.exe,將出現(xiàn)登陸界面如圖6:圖 6 用戶登陸6.2 用戶注冊(cè)圖 7 用戶注冊(cè)6.3 登陸成功登陸成功后,顯示的是客戶端的主界面,主界面上有自己的根本信息和好友列表,并有假設(shè)干面板,如圖8:圖 8 即時(shí)通訊主程序6.4 進(jìn)入房間進(jìn)入房間后,首先顯示的是一個(gè)大廳,在大廳里有房間分類以及每個(gè)分類下的房間,用戶可以參考房間人數(shù)以及房間說(shuō)明選擇想要進(jìn)入的房間,如圖9:圖 9 房間大廳左邊是房間的分類,選擇分類后,在左邊的列表中顯示該分類的所有房間。雙擊進(jìn)入所選房間,房間界面如圖10:圖 10 房間6.5 上麥在控制面板中點(diǎn)擊公麥;按鈕會(huì)出現(xiàn)供選擇的

17、上麥類型的下拉菜單,上麥類型分為公麥和私麥,而私麥又分為所有人可連接、公好友可連接及需確認(rèn)可連接三種,上公麥后房間內(nèi)所有用戶都可以看到視頻圖像畢業(yè)論文怎么寫,而上私麥后并不顯示在房間里,當(dāng)用戶請(qǐng)求連接后,系統(tǒng)會(huì)根據(jù)你的上麥類型而判斷是否可以讓他看到你的視頻。不同的麥類型在用戶管理列表里會(huì)有不同的麥顏色來(lái)區(qū)分,如圖11:圖 11 上麥菜單6.5 其他功能房間界面的管理如圖12:點(diǎn)擊控制面板中的界面管理;,彈出窗口,根據(jù)自己的喜好設(shè)置各個(gè)組件的位置和大小,點(diǎn)確認(rèn);即顯示用戶設(shè)置的樣式。點(diǎn)保存到本地;,用戶每次再進(jìn)入該房間都將顯示剛保存的樣式?;謴?fù);就是恢復(fù)到房間默認(rèn)的設(shè)置樣式。圖 12 界面管理用戶的管理功能如圖13:點(diǎn)擊控制面板中的用戶管理;,彈出窗口。管理員可以對(duì)該房間的用戶進(jìn)行管理。添加和刪除黑用戶、黑IP、管理員。圖 13 用戶管理其它功能如圖14,15:圖 14 用戶列表菜單 圖 15 控制面板總結(jié)經(jīng)過(guò)二個(gè)月的開(kāi)發(fā),天語(yǔ)情多人語(yǔ)音視頻聊天軟件初見(jiàn)雛形,在這二個(gè)月中學(xué)到很多,像網(wǎng)絡(luò)通訊方面的知識(shí),學(xué)習(xí)了如何利用UDP發(fā)送大數(shù)據(jù)包以及在無(wú)連接的UDP通訊中采用超時(shí)重

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論