




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、基于局域網(wǎng)的視頻會議系統(tǒng)目 錄摘要2abstract21 前 言32 視頻會議系統(tǒng)的基本原理43視頻會議系統(tǒng)的設(shè)計和實(shí)現(xiàn)53.1 開發(fā)環(huán)境簡介53.1.1 java語言及其開發(fā)工具簡介53.1.2 系統(tǒng)開發(fā)硬件環(huán)境63.2 系統(tǒng)的具體實(shí)現(xiàn)63.2.1 javagroups的具體實(shí)現(xiàn)63.2.2 對javagroups的擴(kuò)展實(shí)現(xiàn)視頻會議系統(tǒng)93.3視頻會議系統(tǒng)的相關(guān)技術(shù)133.3.1 java媒體框架133.3.2 cscw134 結(jié) 束 語145 謝 辭146 參考文獻(xiàn)14 摘要傳統(tǒng)的會議總是需要先預(yù)定時間、地點(diǎn),統(tǒng)一開會人員及布置會場、記錄、主持等,會議所要解決的問題或是要制定的方案、決策常
2、常由于許多客觀因素而耽擱。視頻會議(videoconference)系統(tǒng)是一種能把聲音、圖像、文本等多種信息從一個地方傳送到另一個地方的通信系統(tǒng),它解決了以上的問題,免去了很多會議開支,縮短了解決問題的周期,使客觀因素的影響大大減小。視頻會議系統(tǒng)作為計算機(jī)技術(shù)和通信技術(shù)相結(jié)合的產(chǎn)物,正隨著波及全球的信息高速公路的興起而迅速發(fā)展起來。本文介紹了視頻會議系統(tǒng)的基本概念,與其相關(guān)的java媒體框架(jmf:java media framework)和計算機(jī)支持的協(xié)同工作(cscw:computer supported cooperative work)系統(tǒng),java語言及其開發(fā)環(huán)境,并根據(jù)視頻會議系
3、統(tǒng)的基本結(jié)構(gòu)和一些相關(guān)技術(shù),說明了一個基于javagroups工具包的小型視頻會議系統(tǒng)的設(shè)計和實(shí)現(xiàn)。關(guān)鍵詞: 視頻會議系統(tǒng);javagroups工具包;java媒體框架;計算機(jī)支持的協(xié)同工作abstract traditionally,holding a conference needs some complex procedures for a long time ,such as pre-arranging the schedule ,place ,people ,preparingthe hall ,recorder ,master and so on. the goal of a me
4、eting , resolving problems or making plans and decisions ,will be usually delayed by suchobjective factors. the video conference system is a communication systemthat transmits many kinds of signals such as video, audio, text and so on from one place to another. it is created to save money and time b
5、ecause of meetings and helps reducing the influence of objective factors. thevideo conference system is the combination of computer technology andcommunication technology, and it is now developing very fast with the national information infrastructure of the whole world. this article introduces the
6、basic concepts of the video conference ,jmf(java media framework) and the cscw (computer supported coorperative work)system and java language. according to the basic structure of video conference and some other technology,it describes the design and implementation of a mini-video conference system b
7、ased-on javagroups toolkit.key words :video conference system;javagroups toolkit;jmf;cscw1 前 言會議,是人類社會經(jīng)濟(jì)生活中不可或缺的一部分,有關(guān)的研究表明,通信的有效性約55%依賴于面對面(face-to-face)的視覺效果,38%依賴于說話語音,視聽是人們獲取信息的最重要形式,而面對面的討論(face-to-face)是人類表達(dá)思想最豐富的一種方式。自工業(yè)革命后,科技的發(fā)達(dá)使得通信技術(shù)有了突破性的進(jìn)展,電話和電報的發(fā)明,使遠(yuǎn)地的人們可以立即傳送聲音和文檔。然而,除了言語的溝通外,人類更注重的是表情和
8、肢體的表達(dá),僅僅是聲音的傳送已經(jīng)無法滿足現(xiàn)代人交流的需求,即時并且互動的影像更能真實(shí)自然的傳送信息。(1)視頻會議系統(tǒng)正是在這種迫切需要的推動下產(chǎn)生的新一代通信產(chǎn)品。視頻會議(videoconference)系統(tǒng)是一種能把聲音、圖像、文本等多種信息從一個地方傳送到另一個地方的通信系統(tǒng)。有效發(fā)送基于視頻的信息,可以在遠(yuǎn)程部門和部門間開展合作,同時還可以實(shí)現(xiàn)諸如視頻會議和視頻點(diǎn)播等視頻應(yīng)用技術(shù)。視頻會議系統(tǒng)是計算機(jī)技術(shù)與通信技術(shù)相結(jié)合的產(chǎn)物,它作為多媒體通信技術(shù)的一個重要組成部分,正隨著波及全球的信息高速公路的興起而迅速發(fā)展起來。 視頻會議從出現(xiàn)至今已有三十多年,從最開始的減少旅行費(fèi)用,提高工作效
9、率,到911時的加速國內(nèi)外協(xié)作,保障人身安全等,再到sars時保障社會的穩(wěn)定和各項工作最低限度的運(yùn)轉(zhuǎn),視頻會議的優(yōu)越性正在越來越被廣泛的顯示出來。(2)鑒于視頻會議系統(tǒng)在軍事、經(jīng)濟(jì)、文化等領(lǐng)域給人類帶來的巨大作用和經(jīng)濟(jì)效益,各國競相研究和開發(fā)視頻會議系統(tǒng),特別是在超大規(guī)模集成電路、壓縮算法及視覺生理研究方面取得了突破性進(jìn)展和關(guān)于視頻會議的一系列國際標(biāo)準(zhǔn)相繼出臺,以及各種圖像實(shí)時處理芯片紛紛推出后,視頻會議系統(tǒng)的實(shí)用化才得到長足的發(fā)展。目前國內(nèi)外的主要應(yīng)用有:商務(wù)交流商業(yè)會議企業(yè)客戶服務(wù)和產(chǎn)品開發(fā)遠(yuǎn)程教學(xué)和技術(shù)培訓(xùn)市場調(diào)查和情報收集遠(yuǎn)程醫(yī)療和會診科研合作和工程設(shè)計跨國企業(yè)應(yīng)用招募員工 從目前的發(fā)
10、展來看,有關(guān)視頻會議技術(shù)的研究很多,有關(guān)的產(chǎn)品也非常豐富,盡管視頻會議系統(tǒng)有十分誘人的廣闊前景,但在這個領(lǐng)域中還有相當(dāng)多的技術(shù)問題亟待解決,其中在現(xiàn)階段影響視頻會議系統(tǒng)實(shí)用性、通用性及友好性的相關(guān)技術(shù)和有關(guān)問題有:軟件技術(shù)、數(shù)據(jù)庫技術(shù)、網(wǎng)絡(luò)技術(shù)、共享技術(shù)、資源控制技術(shù)、保密技術(shù)和會議模型技術(shù)。(3)本項課題主要研究的是用軟件的方式,配合一些必要的外設(shè),實(shí)現(xiàn)一個小型視頻會議系統(tǒng)。 2 視頻會議系統(tǒng)的基本原理 視頻會議(videoconference)系統(tǒng)的基本定義是:兩個或兩個以上地理位置不同的個人或群體,通過傳輸線路和多媒體設(shè)備,將聲音、圖像、視頻影像和文件資料交互的傳遞,達(dá)到即時并且互動的溝
11、通,以便完成會議目的的系統(tǒng)。從定以上看,視頻會議是一種典型的多媒體通信,下圖是一個典型的視頻會議系統(tǒng)示意圖:pc到其他站點(diǎn)到其他站點(diǎn)pc多點(diǎn)控制器mcu大型顯示終端控制器控制器輔助攝像機(jī)文獻(xiàn)攝像機(jī)vcr 圖1.1 一個典型的視頻會議系統(tǒng)的示意圖從上面的示意圖我們可以大致看出,視頻會議系統(tǒng)主要有三個部分組成,即通信網(wǎng)絡(luò)、會議終端和多點(diǎn)控制單元。視頻會議系統(tǒng)實(shí)質(zhì)上是計算機(jī)技術(shù)和通信技術(shù)相結(jié)合的產(chǎn)物,所以通信網(wǎng)絡(luò)是視頻會議系統(tǒng)的基礎(chǔ)組成部分之一,會議終端是將視頻、音頻、數(shù)據(jù)、信令等等各種數(shù)字信號分別進(jìn)行處理后組合成的復(fù)合數(shù)字碼流,再將碼流轉(zhuǎn)變?yōu)榕c用戶-網(wǎng)絡(luò)兼容的接口,符合傳輸網(wǎng)絡(luò)所規(guī)定的信道幀結(jié)構(gòu)的
12、信號格式送上信道進(jìn)行傳輸。多點(diǎn)控制單元是視頻會議系統(tǒng)用于多點(diǎn)視聽信息的傳輸與切換部分,它是根據(jù)一定的準(zhǔn)則處理視聽信號,并根據(jù)要求分配各個要連接的信道,但它并不是視頻會議所必須的。(1)通信網(wǎng)絡(luò)是一系列的設(shè)備、機(jī)構(gòu)和進(jìn)程,通過它們,附著在網(wǎng)絡(luò)上的終端用戶設(shè)備能夠進(jìn)行有意義的信息交換。它涉及到網(wǎng)絡(luò)傳輸協(xié)議、網(wǎng)絡(luò)編程接口等內(nèi)容。(4)視頻會議系統(tǒng)的終端設(shè)備承擔(dān)了多種媒體信息的輸入、輸出和處理,以及用戶和網(wǎng)絡(luò)之間的連接、交互和控制等多項任務(wù)。它屬于用戶數(shù)字通信設(shè)備,在系統(tǒng)中處在用戶的視聽、數(shù)據(jù)輸入/輸出設(shè)備和網(wǎng)絡(luò)之間。(1)視頻會議中有時需要進(jìn)行多點(diǎn)間的信息傳輸和交換,這時可以借助于多點(diǎn)控制單元(mc
13、u)來實(shí)現(xiàn)。多點(diǎn)控制單元實(shí)際上就是一臺多媒體信息交換機(jī),實(shí)現(xiàn)多點(diǎn)呼叫和連接,實(shí)現(xiàn)視頻廣播、視頻選擇、音頻混合、數(shù)據(jù)廣播等功能,完成各終端信號的匯接與切換。mcu將各個終端送來的信號進(jìn)行分離,抽取出音頻、視頻、數(shù)據(jù)和信令,分別送到相應(yīng)的處理單元,進(jìn)行音頻混合或切換,視頻切換、數(shù)據(jù)廣播、路由選擇、會議控制、定時和呼叫處理等,處理后的信號由復(fù)用器按照h.221格式組幀,然后經(jīng)網(wǎng)絡(luò)接口送到指定端口。(5)3 視頻會議系統(tǒng)的設(shè)計和實(shí)現(xiàn)3.1 開發(fā)環(huán)境簡介3.1.1 java語言及其開發(fā)工具簡介java語言是當(dāng)今流行的新興網(wǎng)絡(luò)編程語言,它的面向?qū)ο?、跨平臺、分布應(yīng)用等特點(diǎn)給編程人員帶來了一種嶄新的計算概念
14、,使www從最初的單純提供靜態(tài)信息發(fā)展到現(xiàn)在的提供各種各樣的動態(tài)服務(wù),發(fā)生了巨大的變化。java的出現(xiàn)導(dǎo)致了程序設(shè)計領(lǐng)域的一場革命,它被譽(yù)為20世紀(jì)出現(xiàn)的最重要的技術(shù)之一。java不僅能夠編寫小應(yīng)用程序?qū)崿F(xiàn)嵌入網(wǎng)頁的聲音和動畫功能,而且還能夠應(yīng)用于獨(dú)立的大中型應(yīng)用程序,其強(qiáng)大的網(wǎng)絡(luò)功能能夠把整個internet作為一個統(tǒng)一的運(yùn)行平臺,極大的拓展了傳統(tǒng)單機(jī)或client/server模式應(yīng)用程序的外延和內(nèi)涵。自從1995年正式問世以來,java已經(jīng)逐步從一種單純的計算機(jī)高級編程語言發(fā)展為一種重要的internet平臺,并進(jìn)而引發(fā)、帶動了java產(chǎn)業(yè)的發(fā)展和壯大,成為當(dāng)今計算機(jī)業(yè)界不可忽視的力量和
15、重要的發(fā)展潮流與方向。(6)概括的說,java是一種性能優(yōu)異的、簡單的、面向?qū)ο蟮?、分布式的、解釋的、健壯的、安全的、結(jié)構(gòu)的、中立的、可移植的、多線程的和動態(tài)的語言。java的開發(fā)工具分成三大類,分別為:l 文本編輯器。這類工具只提供了文本編輯功能,它只是一種類似記事本的工具。這類工具進(jìn)行多種編程語言的開發(fā),如c、c+、java等。主要有ultraedit和editplus等編輯器。l web開發(fā)工具。這類工具提供了web頁面的編輯功能,具體到j(luò)ava主要就是jsp頁面的開發(fā)。主要有homesite等。l 集成開發(fā)工具。這類工具提供了java的繼承開發(fā)環(huán)境,為那些需要集成java與j2ee的開
16、發(fā)者、開發(fā)團(tuán)隊提供對web應(yīng)用程序、servlets、jsps、ejbs、數(shù)據(jù)訪問和企業(yè)應(yīng)用的強(qiáng)大支持。現(xiàn)在的很多工具屬于這種類型,也是java開發(fā)工具的發(fā)展趨勢。主要有jbuilder、webgain、websphere studio等。jbuilder是目前最好的java開發(fā)工具之一,在協(xié)同管理、對j2ee和xml的支持等方面均走在其它產(chǎn)品的前面。jbuilder的主要特性有:l 提供與tomcat(tomcat 是一種有jsp環(huán)境的servlet的容器。servlet容器是代替用戶管理和調(diào)用 servlet的運(yùn)行時外殼)的集成,使web開發(fā)更容易。l 提供了對企業(yè)應(yīng)用的開發(fā)功能,可以集成
17、多種應(yīng)用服務(wù)器。l 提供了更簡單的程序發(fā)布功能,所有的應(yīng)用都可以打包。l 提供了團(tuán)隊開發(fā)能力,可以集成多種版本控制產(chǎn)品。jbuilder是遵循sun公司j2ee標(biāo)準(zhǔn)的可視化集成開發(fā)工具。它是一種處于市場領(lǐng)先地位的跨平臺環(huán)境,主要用于構(gòu)建具有行業(yè)實(shí)力的企業(yè)java應(yīng)有程序。jbuilder繼承了borland公司開發(fā)工具系列的優(yōu)秀特性,這使得用過delphi、c+builder的程序員很容易的過渡到j(luò)builder的開發(fā)環(huán)境中。(7)本系統(tǒng)中使用的java開發(fā)工具為jbuilder9。3.1.2 系統(tǒng)開發(fā)硬件環(huán)境cpu:p4 1.70g 內(nèi)存:256mb 硬盤:40gb操作系統(tǒng):microsof
18、t windows2000 professional3.2 系統(tǒng)的具體實(shí)現(xiàn)3.2.1 javagroups的具體實(shí)現(xiàn)本系統(tǒng)是基于javagroups來分析和設(shè)計的。javagroups是一個由康奈爾大學(xué)開發(fā)的基于java的工具包,它提供了可靠的組通信。 它的功能包含了向組內(nèi)所有成員發(fā)送消息,并確保每個成員接收到相同序列的消息。它的基本概念是一個類似于bds套接字的頻道:用戶可以給出他們想加入的組的名字然后連接上,發(fā)送并接受消息,找回當(dāng)前加入的所有成員,并且當(dāng)有成員加入或離開時可以得到通知。同名的所有頻道可以彼此“發(fā)現(xiàn)”,而且經(jīng)由一個頻道發(fā)送的消息可以被同一個組(有一樣的名字)中所有的頻道接收到
19、。(8)javagroups的文件夾中包含了12個文件夾和31個java文件,把他們放在一起在jbuilder9中生成一個工程文件。該文件中則有12個java包和31個java文件。這些包分別為:blocks、conf、debug、demos、ensemble、log、persistence、protocols、service、stack、tests和util。本文種主要討論了其中四個包的主要功能:l service包:抽象類abstractservice:所有服務(wù)器實(shí)現(xiàn)的一個超類, 每一個服務(wù)器有兩個通訊頻道:一個被內(nèi)部服務(wù)器用來和組內(nèi)的合法成員通信,另一個被客戶服務(wù)器用來進(jìn)行組間通信。類s
20、ervicerunner:以單機(jī)模式來啟動服務(wù)器。class: servicerunnerpublic static method:(1) main(string args)根據(jù)args.length和resourcename來確定是否啟動服務(wù)器。(2) startservice(resourcebundle res)從特殊化的resource中抽取參數(shù),創(chuàng)建服務(wù)器實(shí)例并啟動它。private static method: printusage()打印這個類的作用。public static field:(1) client_channel_stack 客戶通信頻道的協(xié)議棧。(2) clien
21、t_group_name 客戶通信頻道的組名。(3) service_channel_stack 服務(wù)器通信頻道的協(xié)議棧。(4) service_group_name 服務(wù)器通信頻道的組名。接口lease:描述了一個被租借管理器賦權(quán)的標(biāo)號,允許在一段限定的時間內(nèi)訪問一些資源。interface:leasepublic method:(1) getexpiration()獲取租借期滿時間,租借期滿時間總是一個絕對的值。(2) getduration()檢查租借是否期滿。(3) getleasetarget()獲取租借的對象并返回代表租借源的唯一標(biāo)示符。(4) gettenant()獲取該租借的承
22、租者并返回獲得租借的實(shí)體的唯一標(biāo)示符。(5) getfactory()獲取創(chuàng)建該租借的leasefactory的實(shí)例接口leasefactory:負(fù)責(zé)批準(zhǔn)新的租借,更新現(xiàn)有的租借并刪除不需要的租借。類leasefactoryclient:是接口leasefactory的一個實(shí)現(xiàn),它代表了包含一個或多個leasefactotyservice實(shí)例的組中被批準(zhǔn)的租借。類leasefactoryservice:是能夠租借資源給用戶的服務(wù)器。租借請求通過用戶-服務(wù)器通訊頻道發(fā)出,并由message headers中的leaserequestheader的存在進(jìn)行識別。在每個message中可能只有一個租
23、借請求,它包含了租借期限和請求租借的實(shí)體的信息,有效載荷payload信息包含了對租借資源的唯一識別。類leaserequestheader:header的子類,代表了租借請求。類leaseresponseheader:header的子類,代表了服務(wù)器的響應(yīng),在消息中存在這個header表示先前的請求成功了。header的類型決定了滿足了何種類型的請求。 l stack包:類ackmcastreceiverwindow:創(chuàng)建并維持一個信息棧,接受不同發(fā)送者發(fā)送的信息。應(yīng)答收到的每條信息,檢查它是否已被拒絕,如果是,則拋棄該信息,否則拒絕它。信息中包含了需要刪除的舊信息的序列號,它們要從信息表中
24、移除。 類ackmcastsenderwindow:為每一條信息維持一個棧,保存接收者發(fā)出的ack。類acksenderwindow:一個發(fā)送者的基于ack的滑動窗口,當(dāng)收到一個ack時,消息將按照序列號的順序填加進(jìn)窗口,同時刪除應(yīng)答消息。類configurator:用來設(shè)置并配置協(xié)議棧,把一個用來描述沒一層的分層和配置的字符串傳遞給創(chuàng)建和配置協(xié)議棧的配置器,然后向頂層返回一個參數(shù)。類gossipserver:為每個租借維持一個成員地址的緩沖區(qū),它有兩個基本功能:獲取一個給定組的成員并為一個給定的組注冊一個新成員。類gossipclient:是一個本地stub,使用基于tcp的私有協(xié)議連接到g
25、ossipserver。類gossipdata:封裝gossipserver和gossipclient間傳送的數(shù)據(jù)。類interval:管理重新發(fā)送的時間間隔。類ipaddress:依賴于網(wǎng)絡(luò)的地址,由協(xié)議棧udp的最底層產(chǎn)生,包含一個網(wǎng)絡(luò)地址和端口。抽象類protocol:為協(xié)議層提供了一套公用的服務(wù)器。每一層必須是protocol的一個子類并且重載一些方法(典型的如up,down和getname)。各個層以一定的順序堆疊在一起形成一個協(xié)議棧。類messageprotocol:protocol的子類,它是基于協(xié)議的,但合并了requestcorrelator和grouprequest,后者用
26、來向所有成員發(fā)送消息并接受他們的響應(yīng)。類protocolstack:protocol的子類,protocolstack管理許多協(xié)議,它創(chuàng)建所有的protocol類,把他們初始化,并且當(dāng)準(zhǔn)備好時,以最低層協(xié)議為開始啟動它們。它還把從棧中接收到的信息分派給已注冊的對象,如channel,gmp,而且把這些對象發(fā)送的信息沿著棧發(fā)送下去。protocolstack利用configurator來建立和初始化棧,并且當(dāng)不再需要它們時銷毀這些棧。類nakreceiverwindow:根據(jù)信息的序列號維持棧。允許信息不按順序添加,并且序列號線可以有間隙。 接口protocolobserver:為調(diào)試器設(shè)置的接
27、口,用來接收關(guān)于一個協(xié)議層的通知。定義了hook,當(dāng)重大事件發(fā)生時由protocol調(diào)用它們,例如接收到一個事件。每一個protocolobserver都要有一個它所監(jiān)聽的協(xié)議的參考。類retransmitter:維持一個需要重新發(fā)送的信息序列號池,信息被標(biāo)上時間,重發(fā)請求根據(jù)時間先后。類statetransferinfo:包含了狀態(tài)轉(zhuǎn)換的參數(shù),在channel和state_transfer間進(jìn)行轉(zhuǎn)換。l tests包:用來對各個模塊進(jìn)行測試。l util包:java.util包包括了java語言中的一些低級的使用工具,該util包則在其基礎(chǔ)上進(jìn)行了一些改善,使其更適合實(shí)際的系統(tǒng)。如其中的類l
28、inkedlistqueue,是建立在java.util.queue之上,如果想使用這個類代替原始的類,它也可以重命名為queue.java并編譯,3.2.2 對javagroups的擴(kuò)展實(shí)現(xiàn)視頻會議系統(tǒng) videoconference和javagroupsvc是為實(shí)現(xiàn)視頻會議系統(tǒng)并且基于javagroups而設(shè)計的。videoconference是javagroups的一個擴(kuò)展包,javagroupsvc是基于javagroups的一個視頻會議的應(yīng)用程序。它是一種開放源碼的程序,提供了一種多平臺視頻會議的解決方案。javagroupvc支持三個數(shù)據(jù)頻道:一個用于視頻廣播的視頻頻道,一個用于音
29、頻廣播的音頻頻道和一個用于聊天對話的文本頻道。加入某一個組的用戶可以和該組中所有的成員共享視頻和音頻。 每個用戶要選擇一個用戶名和卡通圖標(biāo)來代表自己。在一個特定的組內(nèi),用戶名和圖標(biāo)都是唯一的。如果在該組中這個用戶名或圖標(biāo)已經(jīng)有人用過了,則新來者就要換另一個了。組內(nèi)的所有成員都可以選擇發(fā)送消息至所有人或者特定的某個人。所有對連接有用的組和目前存在的組將以一種可擴(kuò)充的樹結(jié)構(gòu)顯示出來,這樣用戶可以瀏覽每個組來找一個感興趣的加入。用戶可以無限次地加入或重復(fù)加入某個組,但是在某個特定時間,一個用戶只能在一個組中,他必須離開當(dāng)前所在的組才能夠進(jìn)入另一個組。javagroupsvc使用層結(jié)構(gòu)來設(shè)計的。有三個
30、主要的層:圖形用戶界面層、控制層和數(shù)據(jù)層。如下圖所示:圖形用戶界面管理器圖形用戶界面層組列表組列表管理器組管理器控制層用戶信息用戶信息管理器成員管理器媒體管理器數(shù)據(jù)層文本管理器音頻管理器視頻管理器圖2.1 javagroupsvc的分層結(jié)構(gòu)其中包含六個主要部分,四個對用戶是可見的。它們是圖形用戶界面層中的圖形用戶界面部分,數(shù)據(jù)層中的視頻部分,音頻部分和文本部分。另外兩個對終端用戶透明的部分是控制層中的組內(nèi)成員部分和組間成員部分。圖形用戶界面層 該層的主要部分是圖形用戶界面管理器(guimanager),它通過輕量java swing組件來處理所有的用戶事件。guimanagers實(shí)現(xiàn)了接口wi
31、dowlistener、actionlistener和runnable,它包含了四個子組件:聊天面板,媒體面板,成員面板和組面板。聊天面板(chatpanel)用來顯示或記錄聊天會議的活動(文本面板),聊天面板由一個用于輸入消息的文本區(qū)域和一個用于顯示來自所有成員的消息的文本區(qū)域組成;組面板(groupspanel)用來顯示所有的組和組中所有的成員。它有一個包含所有組的樹形結(jié)構(gòu),從中可以看到每個組內(nèi)的成員;成員面板(membershipchanel)用來顯示當(dāng)前組中的所有成員,組中的每個成員用一個帶有用戶名和用戶圖標(biāo)的可擊按鈕來代替,聊天中私有消息可以通過點(diǎn)擊代表那個特殊成員的按鈕來發(fā)送;媒體
32、面板(mediapanel)用來顯示視頻和音頻播放器。另外,guimanager中還包含了一個用戶菜單項(usermenuitem),它是swing組件中菜單項(jmenuitem)的子類,它存儲了必要的用戶信息 ,當(dāng)guimanager的菜單中有一個用戶被選中時,同他的視頻會議就可以開始了。為了使應(yīng)用程序面對用戶真正做到交互性,用戶事件必須通過guimanager下的四個子組件來傳播信息。另一方面,為了顯示在javagroups框架下發(fā)生的活動和事件,各種管理器(如音頻管理器audiomanager、視頻管理器videomanager、文本管理器textmanager、成員管理器member
33、shipmanager等)都需要一種能與四個子組件通信的方法。圖形用戶界面管理器處理圖形用戶界面層與控制層和數(shù)據(jù)層之間的所有通信。圖形用戶界面層中還包括一個音頻過濾器和一個視頻過濾器,把系統(tǒng)不支持的音頻格式文件和視頻格式文件過濾掉,該系統(tǒng)支持*.au格式的音頻文件和*.mpeg格式的視頻文件。這兩個類都繼承了javax.swing.filechooser中的filefilter類,通過獲取文件的名字來判斷是否支持此文件??刂茖樱╟ontrolmanager)控制管理器包含兩大部分,組管理器(groupsmanager)和成員管理器(memebershipmanager)。其中定義了如下的數(shù)據(jù)結(jié)
34、構(gòu):grouplist:用來存儲一個組的信息,包括組名和用戶信息管理器;userinfo:用來存儲單個成員的信息,包括用戶名、地址、聊天地址、視頻地址、音頻地址、默認(rèn)地址和序列號。組列表管理器(grouplistmanager)是grouplist的數(shù)據(jù)結(jié)構(gòu)管理器,它用來處理在一個組列表中添加和刪除組的操作。用戶信息管理器(userinfomanager)是userinfo的數(shù)據(jù)結(jié)構(gòu)管理器,它用來處理關(guān)于把可讀的用戶名和終端地址聯(lián)系起來的所有事務(wù)。組管理器(groupsmanager)屬于頻道管理器,它運(yùn)行組間成員管理協(xié)議,并且通過guimanager同用戶事件進(jìn)行通信。它是抽象類manage
35、r的子類,并且實(shí)現(xiàn)了接口membershiplistener和messagelistener。組管理器實(shí)現(xiàn)了加入一個組,離開一個組,獲取自身地址,設(shè)置成員管理器、音頻管理器、視頻管理器、文本管理器、組列表管理器等功能。它同時包含了組列表管理器。成員管理器(memebershipmanager)也屬于頻道管理器,它同樣也運(yùn)行組間成員管理協(xié)議,并且通過guimanager同用戶事件進(jìn)行通信。它也是抽象類manager的子類,實(shí)現(xiàn)了接口membershiplistener和messagelistener。成員管理器定義了當(dāng)前成員向量、新成員向量、當(dāng)前視圖、用戶信息變量,還有一些布爾變量用來標(biāo)示當(dāng)前成
36、員所處的狀態(tài),如是否是協(xié)調(diào)者,是否在進(jìn)行視頻、音頻廣播等。另外還實(shí)現(xiàn)了連接到一個組、離開一個組、獲取成員信息、接收信息、發(fā)送視頻/音頻廣播請求、對請求的允許或拒絕等功能。它同時包含了用戶信息管理器。在這一層中除了管理器之外,還定義了特殊的控制消息,這一層中所有的控制消息都是javagroups中消息類(message)的子類。它又分為組列表控制消息、媒體消息信息和成員控制消息。如下所示:五種不同的組表控制消息:bcastnewgroupmsg:由一個新組的創(chuàng)建者發(fā)出的廣播消息,用來通知其他組的所有用戶建立了一個新組。grouplistrequestmsg:從一個新的成員發(fā)出到所有組的協(xié)調(diào)者得點(diǎn)
37、到點(diǎn)的消息,用來請求當(dāng)前的組列表。grouplistreplymsg:當(dāng)前組列表中所有組的協(xié)調(diào)者對要求組列表的請求者得點(diǎn)到點(diǎn)的答復(fù)信息。memberjoingroupmsg:一個組中的協(xié)調(diào)者用來通知不同組中的用戶有新成員加入該組的廣播消息。memberleavegroupmsg:一個組中的協(xié)調(diào)者用來通知不同組中的用戶有新成員離開該組的廣播消息。十一種不同的成員控制信息bcastuserinfomsg:新成員向組內(nèi)所有成員發(fā)布的關(guān)于它本身的廣播消息。audiochannelbcastmsg:新成員向組內(nèi)所有成員發(fā)布的關(guān)于它自己的音頻地址的廣播消息。videochannelbcastmsg:新成員
38、向組內(nèi)所有成員發(fā)布的關(guān)于它自己的視頻地址的廣播消息。textchannelbcastmsg:新成員向組內(nèi)所有成員發(fā)布的關(guān)于它自己的文本地址的廣播消息。initialmembersrequestmsg:從一個新的成員發(fā)出到所有組的協(xié)調(diào)者的點(diǎn)到點(diǎn)的消息,用來請求當(dāng)前的組列表。initialmembersreplymsg:從當(dāng)前組列表中所有組的協(xié)調(diào)者對要求組列表的請求者的點(diǎn)到點(diǎn)的答復(fù)消息。iconinquirymsg:從一個新的成員發(fā)出到所有組的協(xié)調(diào)者的點(diǎn)到點(diǎn)的消息,用來請求可用圖標(biāo)的列表。iconinquiryreplymsg:當(dāng)前組列表中所有組的協(xié)調(diào)者對要求可用圖標(biāo)列表的請求者的點(diǎn)到點(diǎn)的答復(fù)消息
39、。joinrequestmsg:新成員發(fā)給該組協(xié)調(diào)者的點(diǎn)到點(diǎn)的消息,用來請求加入該組。joinrequestgrantedmsg:組內(nèi)的協(xié)調(diào)者發(fā)給新成員的點(diǎn)到點(diǎn)的消息,用來允許該成員加入該組。joinrequestdeniedmsg:組內(nèi)的協(xié)調(diào)者發(fā)給新成員的點(diǎn)到點(diǎn)的消息,用來拒絕該成員加入該組。十三種不同的媒體控制消息:startvideoconferencerequestmsg:從一個成員(請求者)發(fā)給另一個成員(接收者)的點(diǎn)到點(diǎn)的消息,用來請求一段視頻對話。startvideoconferencerequestgrantedmsg:一個成員(接收者)發(fā)給另一個成員(請求者)的點(diǎn)到點(diǎn)的消息,
40、表示同意舉行視頻對話。startvideoconferencerequestdeniedmsg:一個成員(接收者)發(fā)給另一個成員(請求者)的點(diǎn)到點(diǎn)的消息,表示拒絕舉行視頻對話。startaudiobcastmsg:組內(nèi)協(xié)調(diào)者向所有成員發(fā)出的廣播消息,表示一段音頻廣播的開始。endaudiobcastmsg:組內(nèi)協(xié)調(diào)者向所有成員發(fā)出的廣播消息,表示一段音頻廣播結(jié)束。startaudiorequestmsg:組內(nèi)成員(請求者)發(fā)給協(xié)調(diào)者的點(diǎn)到點(diǎn)的消息,請求允許在組內(nèi)廣播音頻。startaudiorequestgrantedmsg:組內(nèi)協(xié)調(diào)者發(fā)個請求者的點(diǎn)到點(diǎn)的消息,允許它在組內(nèi)廣播音頻。start
41、audiorequestdeniedmsg:組內(nèi)協(xié)調(diào)者發(fā)個請求者的點(diǎn)到點(diǎn)的消息,禁止它在組內(nèi)廣播音頻。startvideobcastmsg:組內(nèi)協(xié)調(diào)者向所有成員發(fā)出的廣播消息,表示一段視頻廣播的開始。endvideobcastmsg:組內(nèi)協(xié)調(diào)者向所有成員發(fā)出的廣播消息,表示一段視頻廣播結(jié)束。startvideorequestmsg:組內(nèi)成員(請求者)發(fā)給協(xié)調(diào)者的點(diǎn)到點(diǎn)的消息,請求允許在組內(nèi)廣播視頻。startvideorequestgrantedmsg:組內(nèi)協(xié)調(diào)者發(fā)個請求者的點(diǎn)到點(diǎn)的消息,允許它在組內(nèi)廣播視頻。startvideorequestdeniedmsg:組內(nèi)協(xié)調(diào)者發(fā)個請求者的點(diǎn)到點(diǎn)的
42、消息,禁止它在組內(nèi)廣播視頻。數(shù)據(jù)層(datamanager) 這一層中定義了數(shù)據(jù)頻道的管理器和消息類型。媒體管理器類(mediamanager)是數(shù)據(jù)頻道管理器的超類,同時也是管理器類(manager)的子類。視頻管理器(videomanager)、音頻管理器(audiomanager)和文本管理器(textmanager)都是媒體管理器類的子類。他們分別是視頻頻道、音頻頻道和文本頻道的頻道管理器,通過guimanager同用戶事件進(jìn)行通信。該層中包含了其中不同的消息類型,他們也是javagroups中消息類(message)的子類。startvideomsg:廣播消息,當(dāng)某成員正在向所有的成
43、員廣播視頻時,來自該成員的第一個視頻包,以便他們可以開始新的播放。videomsg:包含視頻數(shù)據(jù)的廣播消息。endvideomsg:廣播消息,當(dāng)某成員正在向所有的成員播放視頻時,來自該成員的最后一個視頻包,以便他們可以停止播放。startaudiomsg:廣播消息,當(dāng)某個成員正在向所有的成員播放音頻時,來自該成員的第一個音頻包,以便他們可以開始一個新的音頻播放。audiomsg:包含音頻數(shù)據(jù)的廣播消息。endaudiomsg:廣播消息,當(dāng)某個成員正在向所有的成員播放最后的音頻時,來自該成員的最后一個音頻包,以便能夠停止音頻播放。textmsg:向組中的所有成員播放公共消息或是向一個包含文本數(shù)據(jù)
44、的特殊接收器中播放點(diǎn)對點(diǎn)的私有消息。 3.3視頻會議系統(tǒng)的相關(guān)技術(shù)3.3.1 java媒體框架2001年3月,sun公司推出了新品java媒體框架(java media framework,簡稱jmf),這是java平臺上的一種多媒體“one-stop shop”(一站購齊)是軟件,它包括了各種媒體應(yīng)用程序。它是能夠在java獨(dú)立應(yīng)用程序和小應(yīng)用程序中顯示、獲取多媒體數(shù)據(jù)的類的集合。jmf為媒體播放器、媒體的獲取以及媒體會議定義了統(tǒng)一的體系結(jié)構(gòu)、消息處理協(xié)議和程序設(shè)計接口。jmf提供了一套構(gòu)建塊(building blocks),它對jmc api的其它部分是非常有用的。例如,jmf提供了一跨
45、平臺、與設(shè)備無關(guān)的方式訪問音頻設(shè)備的方法。另外,諸如動畫和視頻等基于時間的媒體演播也需要以相同的方法處理。jmf2.1.1是對應(yīng)java2平臺標(biāo)準(zhǔn)板(j2se)的一種可選用的應(yīng)用編程接口軟件包,它為音頻和視頻等媒體內(nèi)容的捕獲、回放、流轉(zhuǎn)和編碼轉(zhuǎn)換等提供了統(tǒng)一的架構(gòu)。(9)jmf技術(shù)目前的版本為2.1.1b。jmf2.1.1技術(shù)提供了先進(jìn)的媒體處理能力,擴(kuò)展了java平臺的功能。這些功能包括媒體捕獲、壓縮、流轉(zhuǎn)、回放,以及對各種主要媒體形勢和編碼的支持,如m-jpeg、h.263、mp3、rtp/rtsp(實(shí)時傳送協(xié)議和實(shí)時流轉(zhuǎn)協(xié)議)、macromedias flash、ibm的hotmedia和beatniks的rich media format(rmf)等。(10)在本系統(tǒng)中,安裝的是2.1.1版本的jmf。將jmf的庫文件添加到工程里面,然后就可以使用它提供的各種類和接口了。本系統(tǒng)中使用到了javax.media包,它是jmf中最重要的包,包含了jmf運(yùn)行時必要的類。3.3.2 cscw隨著社會的發(fā)展和科技的進(jìn)步,各種工作變得越來越復(fù)雜。以膽完成一項工作可能只要一個人或幾個人就能勝任了,現(xiàn)在與以前大不相同了,幾乎每項工
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 學(xué)校秋季特長生培養(yǎng)方案計劃
- 購物中心保安工作計劃
- 《高分子化學(xué)實(shí)驗》課程教學(xué)大綱
- 第15課《故鄉(xiāng)》教學(xué)設(shè)計 2024-2025學(xué)年統(tǒng)編版語文九年級上冊
- 健康食品的識別與選擇技巧
- 兒童網(wǎng)絡(luò)安全教育家長指南
- 門診服務(wù)流程優(yōu)化工作總結(jié)計劃
- 月團(tuán)隊協(xié)作與項目推進(jìn)計劃
- 親密的天空小班社會情感學(xué)習(xí)計劃
- 企業(yè)實(shí)驗室的智能化建設(shè)與策略
- 新媒體數(shù)據(jù)分析與應(yīng)用完整PPT全套教學(xué)課件
- 水電站電氣一次設(shè)計
- 三峽大壩介紹課件
- 2023年廣西水土保持監(jiān)測站招考聘用模擬檢測試卷【共500題含答案解析】
- GB/T 36274-2018微電網(wǎng)能量管理系統(tǒng)技術(shù)規(guī)范
- 2023年韶關(guān)北江實(shí)驗學(xué)校小升初招生數(shù)學(xué)題
- 眼科學(xué)基礎(chǔ)本科
- 醫(yī)療設(shè)備維護(hù)、保養(yǎng)、巡查登記本
- 學(xué)生個體差異
- 復(fù)合材料力學(xué)課件
- 合理使用抗菌藥物控制細(xì)菌耐藥增長課件
評論
0/150
提交評論