多媒體管理系統(tǒng)畢業(yè)論文_第1頁
多媒體管理系統(tǒng)畢業(yè)論文_第2頁
多媒體管理系統(tǒng)畢業(yè)論文_第3頁
多媒體管理系統(tǒng)畢業(yè)論文_第4頁
多媒體管理系統(tǒng)畢業(yè)論文_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、多媒體管理系統(tǒng)畢業(yè)論文論文題目局域網(wǎng)內(nèi)多媒體教學系統(tǒng) 的研究與實現(xiàn) 系 別計算機與電子信息工程系 專 業(yè)計算機科學與技術(shù)摘要隨著我國計算機科學技術(shù)的迅速發(fā)展,多媒體教學已經(jīng)成為現(xiàn)代教育的重要組成部分,教育信息化勢在必行,網(wǎng)絡(luò)多媒體教學正在逐漸成為主流的教育形式。網(wǎng)絡(luò)多媒體教學為學習者提供了更為豐富、優(yōu)質(zhì)的學習資源,對提高教學質(zhì)量、轉(zhuǎn)變教學觀念以及推進全民教育產(chǎn)生積極影響。本課題針對本校計算機教室的教學和管理需要,設(shè)計并實現(xiàn)了一個局域網(wǎng)內(nèi)多媒體教學系統(tǒng)。在屏幕廣播功能上,采用java.util.Robot類來進行全屏捕捉,捕捉后的桌面圖片以JPEG的格式進行存儲,并在存儲的過程中進行了快速壓縮,

2、在確保圖片質(zhì)量的同時降低傳輸?shù)男畔⒘?,解決了現(xiàn)有的商業(yè)化網(wǎng)絡(luò)教學系統(tǒng)廣播時網(wǎng)速卡的問題;在屏幕錄制功能上,采用Robot類來完成對屏幕的捕獲;在多媒體數(shù)據(jù)壓縮技術(shù)上,根據(jù)不同的媒體信息的特性采用了不同的壓縮方式;在提交作業(yè)功能上,通過應用層協(xié)議,用UDP方式把要上交的作業(yè)高效率地傳到教師端。本系統(tǒng)實現(xiàn)了屏幕廣播、屏幕錄制、屏幕回放、教師端發(fā)布作業(yè)和學生端提交作業(yè)等功能, 并且測試結(jié)果表明,本系統(tǒng)取得了廣播延時小、發(fā)送文件速度快、系統(tǒng)運行穩(wěn)定的效果。關(guān)鍵詞:局域網(wǎng)多媒體教學系統(tǒng)屏幕廣播 屏幕錄制The research and implementofMultimedia Teaching Sys

3、tem on local area networkAbstractAlong with the rapid development of computer science technology in our country, the multimedia teaching already became the important constituent of the modern education,the education informationization imperative, the network multimedia teaching were becoming the gra

4、dually education form of the mainstream.The network multimedia teaching have provided richly, the high quality study resources for the learner, to improves the quality of teaching, the transformation teaching idea as well as advances to educate all the people has the positive influence.This topic in

5、 view of the school computer engine room teaching and the management need, designed and has realized in a local area network the multimedia teaching system.In the function of the screen broadcast,use the java.util.Robot to carries on entire screen capture, after the capture tabletop image carries on

6、 the memory by the JPEG form, and has carried on the fast compression in the memory process, while guarantees the quality of picture to reduce the transmission the information content, has solved when the existing commercialization network teaching system broadcast network card question; In the func

7、tion of screen transcribing,use in Java JDK1.4 the Robot to complete to the screen capture; In the multimedia data compression technology, has selected the different compression method according to the different media information characteristic; In the submission job function, through the applicatio

8、n layer agreement, the work high efficiency which must deliver passes to the teacher with the UDP way to send.This system has completed the screen broadcast, screen transcribing, screen playbacking,the teacher is held announcing school assignmentand the student is held submitting school assignment a

9、nd so on.and indicated of the test result, this system has obtained the broadcast time delay slightly, the transmission document fast, the system movement stable effect.Keyword:LocalAreaNetworkMultimediaTeachingSystemScreenbroadcastScreenbranscribing目錄第一章緒論11.1 開發(fā)背景11.2 當前多媒體教學系統(tǒng)技術(shù)現(xiàn)狀11.3 選題的意義31.4課題

10、目標3第二章系統(tǒng)開發(fā)于相關(guān)技術(shù)52.1 Java語言與開發(fā)工具52.2 本系統(tǒng)采用的圖像壓縮算法5第三章多媒體教學平臺的設(shè)計73.1 需求分析73.2 系統(tǒng)基本結(jié)構(gòu)83.3協(xié)議設(shè)計的模型9第四章多媒體教學平臺的實現(xiàn)114.1 屏幕錄制114.2 屏幕播放134.3教師機與學生機的連接144.4屏幕廣播164.5 教師端發(fā)布作業(yè)214.6學生端提交作業(yè)24第五章軟件測試過程275.1對屏幕錄制、屏幕回放的測試275.2對教師機和學生機自動連接的測試275.2對屏幕廣播、教師端發(fā)布作業(yè)的測試305.4對提交作業(yè)的測試30第六章總結(jié)與改進32參考文獻33致謝34第一章 緒論1.1 開發(fā)背景計算機輔助

11、教學改變了以往教學中形式單一,信息量小等等諸多弊病,多媒體輔助教學能實現(xiàn)個性化教育,發(fā)展被教育者的積極主動性,具有良好的視覺、聽覺效果、豐富的知識表達能力等多種有點。隨著全球信息化進程的不斷發(fā)展,教育信息化勢在必行,多媒體教學正在逐漸成為主流教育形式。多媒體教學為學習者提供了更為豐富、優(yōu)質(zhì)的學習資源,必將對提高教學質(zhì)量,轉(zhuǎn)變教學觀念以及推進全面教育產(chǎn)生了積極的影響。1.2 當前多媒體教學系統(tǒng)技術(shù)現(xiàn)狀1多媒體教室隨著教育事業(yè)的不斷發(fā)展,教學改革的不斷深入,借助計算機網(wǎng)絡(luò)技術(shù)和多媒體技術(shù),改變傳統(tǒng)的教學手段,已成為各類學校改善教學條件、提高教學質(zhì)量、強調(diào)素質(zhì)教育、培養(yǎng)順應新時期要求的高素質(zhì)人才的共

12、同需求1?,F(xiàn)在多媒體網(wǎng)絡(luò)教室將多媒體計算機同網(wǎng)絡(luò)技術(shù)緊密結(jié)合起來,在網(wǎng)絡(luò)教學的基礎(chǔ)之上更強調(diào)電腦輔助教學功能。既教師利用網(wǎng)絡(luò)多媒體教學平臺直接在計算機上進行課程教學,并能將有限的資源實現(xiàn)共享,達到一室多用,一室多能。多媒體網(wǎng)絡(luò)教室在計算機網(wǎng)絡(luò)的基礎(chǔ)上,借助影音傳輸和控制系統(tǒng),實現(xiàn)聲音、圖像等多媒體信息在計算機網(wǎng)絡(luò)上的實時傳輸,使得各種文字、圖形、圖像、聲音、動畫等多媒體資料皆可用作教學素材,從而使得教學的內(nèi)容和方式更加生動活潑、多姿多彩。傳統(tǒng)意義上的多媒體網(wǎng)絡(luò)教室包括計算機、網(wǎng)絡(luò)設(shè)備以及操作系統(tǒng)?,F(xiàn)代的多媒體網(wǎng)絡(luò)教室還要具備教師和學生之間能夠相互溝通、輔導和控制的多媒體網(wǎng)絡(luò)教室平臺軟件。有了這

13、樣的平臺軟件,教師就能夠向?qū)W生廣播、轉(zhuǎn)播屏幕內(nèi)容和聲音,并能夠進行遠程控制學生機,使教學更加方便。因此,一個完整的多媒體電子教室應包括:計算機 (PC):教師機 (服務器),學生機;網(wǎng)絡(luò)設(shè)備:網(wǎng)卡,網(wǎng)線,集線器或交換機等;操作系統(tǒng):Windows;其它設(shè)備:配件 (耳麥),應用軟件,教學軟件,機房設(shè)備 (防靜電設(shè)備,穩(wěn)壓電源等)。多媒體教室的基本構(gòu)成如圖1-1所示:投影儀掃描儀放像機光盤庫教師機服務器學生機學生機學生機學生機學生機圖1-1多媒體教室教學示意圖2多媒體教學系統(tǒng) 多媒體教學系統(tǒng),可以將教師的屏幕畫面和聲音傳輸 (播)給所有或特定的學生,并可以監(jiān)看學生的屏幕,控制學生的操作。教師與學

14、生可以雙向交談,任何教學軟件和多媒體聲、像教學資料,均可以對學生實時播送和監(jiān)看,從而達到多媒體的電腦教學的目的。多媒體教學系統(tǒng),根據(jù)其設(shè)計原理和實現(xiàn)方式的不同可以歸為三大類:硬件實現(xiàn)方式、軟件實現(xiàn)方式、硬件結(jié)合實現(xiàn)方式,以前兩種為主。2(1)硬件實現(xiàn)方式硬件實現(xiàn)方式完全利用傳輸模擬信號的多媒體卡實現(xiàn)多媒體信號的傳輸。由于模擬信號在傳輸視頻信息上具有得天獨厚的優(yōu)勢,因此在圖像的質(zhì)量上,由硬件實現(xiàn)方式的多媒體教學系統(tǒng)更具有優(yōu)勢。由于采用專用的視頻和音頻控制芯片、控制電纜和控制臺,多媒體教學系統(tǒng)的圖像清晰、傳送可靠,而且不依賴于計算機原有的硬件平臺和軟件平臺。但由于采用專門的硬件設(shè)備,成本難以下降,

15、由于使用專用的多媒體卡和線路連接使系統(tǒng)維護困難,系統(tǒng)升級困難,使用功能比較單一。(2)軟件實現(xiàn)方式軟件實現(xiàn)方式是指運行于底層數(shù)據(jù)網(wǎng)環(huán)境之上的,完全用軟件來實現(xiàn)的多媒體教學系統(tǒng),多媒體的影音信號及控制信號均通過底層數(shù)據(jù)網(wǎng)進行傳輸。軟件版的多媒體教學系統(tǒng)通過一套專門設(shè)計的軟件,利用計算機網(wǎng)絡(luò),來實現(xiàn)原來硬件多媒體教學系統(tǒng)的所有功能。此方式的特點是成本低,無需添加其它附件,安裝維護簡單,軟件版本容易升級,可實現(xiàn)多種功能,但由于圖像傳輸需經(jīng)過壓縮/解壓縮技術(shù)完成,故對計算機硬件配置及網(wǎng)絡(luò)速度有較高限定要求。目前軟件方式在圖像和聲音傳輸效果,尤其語音教學功能方面還有待于進一步提高與完善。(3)軟硬件結(jié)合

16、實現(xiàn)方式軟硬件結(jié)合實現(xiàn)方式是通過在每臺計算機中加裝一塊多媒體網(wǎng)卡,并用專門的多媒體傳輸網(wǎng)線將每臺計算機串接起來,以此來實現(xiàn)多媒體影音信號的獨立通道傳輸。這樣就確保了影像的同步全屏傳輸,并且對學生機的硬件配置要求不高,不需要加聲卡,多媒體網(wǎng)卡上自帶語音功能。此方式成本太高,而且由于多媒體控制信號仍需借助底層數(shù)據(jù)網(wǎng)實現(xiàn)傳輸,每臺計算機中需安裝軟件驅(qū)動程序,整個系統(tǒng)安裝、維護起來有一定的難度,需具有一定的網(wǎng)絡(luò)知識?;诰W(wǎng)絡(luò)設(shè)計的軟件多媒體教學系統(tǒng)是多媒體網(wǎng)絡(luò)教室的發(fā)展方向。1.3 選題的意義本課題針對多媒體教學模式由傳統(tǒng)的黑板教學模式向多媒體教學模式發(fā)展的新趨勢,結(jié)合Java在Jbuilder平臺成

17、熟的技術(shù),著重在于計算機匯集視聽媒體于一身的發(fā)展,對多媒體教學系統(tǒng)做一些新的研究與應用。傳統(tǒng)的電腦教室,一般輔以投影儀或硬件網(wǎng)絡(luò)系統(tǒng)來建立多媒體教學系統(tǒng),但由于高昂的成本和一些其它的原因,并不是一般教室可以配備的,而且硬件設(shè)備耗損大、維護繁瑣、升級麻煩都是令學校困擾的問題,而作為一種純軟件的解決方案的多媒體教學系統(tǒng),完全避免了這些硬件問題,而且教師可以把理論教學與實踐操作相結(jié)合,直接在教師機上進行各種教學演示,并且把每一步操作過程都與實時同步傳送到學生的電腦屏幕上。各種大量的多媒體課件資料、光盤教學資源、實驗演示系統(tǒng)、教學方法和經(jīng)驗等都可以借助多媒體教學系統(tǒng)軟件這種匯集語言、圖片、文字、動畫于

18、一體的現(xiàn)代交互式教學模式實現(xiàn)了??梢栽谡麄€多媒體教室共享文字、圖像、語音、視頻資料。這樣,通過構(gòu)建一種文字、語音、視頻圖像的相互交流環(huán)境,學生可以同時在自己的電腦屏幕上分享各種教學資源,不但大大較少了教師端工作負擔,提高了教學效率,而且也使教學內(nèi)容及其生動活潑,學生樂于接受。目前,國內(nèi)已經(jīng)有一些相對成熟的教學軟件,比如凌波多媒體網(wǎng)絡(luò)教室軟件和博智多媒體電子教室系統(tǒng),這些軟件都有很強大的功能,而且操作方便;但是,這些軟件在市場上都有著昂貴的價格,而且操作系統(tǒng)依賴強。介于這些軟件以上的缺點,本課題選擇用一種更新更快捷的語言JAVA來實現(xiàn)。并且是根據(jù)本校的實際情況,量身定做,使它更加符合本校多媒體教

19、學的要求,以進一步提高本校多媒體教學質(zhì)量。1.4課題目標多媒體教學系統(tǒng)利用計算機教室現(xiàn)有的電腦網(wǎng)絡(luò)設(shè)備,實現(xiàn)教師機對學生機的廣播、監(jiān)控、語音教學等操作,輔助學生完成電腦軟件的學習和使用。多媒體教學系統(tǒng)適用于各類學校以及企事業(yè)單位、培訓機構(gòu)的電腦機房、計算機網(wǎng)絡(luò)教室及電子閱覽室中。本課題要實現(xiàn)以下功能:屏幕廣播:實時傳送教師或某個學生的電腦畫面到某組或全體學生的電腦屏幕上,教師可以用這個功能進行多媒體課件的教學,演示W(wǎng)ord、SQL數(shù)據(jù)庫等軟件的操作,還可以讓某個學生進行示范; 屏幕錄制:錄制上課內(nèi)容以便制作教學視頻; 屏幕回放:對已錄制的內(nèi)容進行網(wǎng)絡(luò)回放;教師端發(fā)布作業(yè):老師可以把要布置的作業(yè)

20、放到所有已經(jīng)與教師機連接上的學生機上。學生端提交作業(yè):學生可以把相應格式的文件發(fā)送到教師的電腦中;提問、回答與討論:當老師向?qū)W生提出問題的時候,同學回答老師的問題,當同學有疑問向老師請教的時候,老師幫同學解答問題;顯示IP:顯示已和教師機連接的學生機的IP;屏幕監(jiān)視:讓教師對選中IP的學生機的電腦屏幕進行實時監(jiān)視,教師可以不離開座位就了解學生的學習情況,實現(xiàn)對整個網(wǎng)絡(luò)上學生機的監(jiān)控與管理; 在線人數(shù):統(tǒng)計已經(jīng)與教師機連接上的學生機數(shù),以便老師了解學生到課情況;警告:教師機在對學生機進行屏幕監(jiān)視的時候,發(fā)現(xiàn)學生沒有按照老師的要求進行相關(guān)操作的時候,教師機可以使用命令對其進行警告;關(guān)機、重啟、注銷

21、:可以把選中IP的學生機關(guān)閉、重啟和注銷操作。第二章 系統(tǒng)開發(fā)于相關(guān)技術(shù)2.1 Java語言與開發(fā)工具Java語言的特性本課題選擇Java作為開發(fā)語言,因為它具有面向?qū)ο?、分布式、平臺無關(guān)、高性能、支持多線程等特性。Jbuilder的特點本課題選擇Jbuilder為開發(fā)平臺,它具有以下特性:1Jbuilder支持最新的JAVA技術(shù),包括Applets、JSP/Servlets、JavaBean以及EJB(Enterprise JavaBeans)的應用。 2用戶可以自動地生成基于后端數(shù)據(jù)庫表的EJB Java類,Jbuilder同時還簡化了EJB的自動部署功能。此外它還支持CORBA,相應的向

22、導程序有助于用戶全面地管理IDL(分布應用程序所必需的接口定義語言Interface Definition Language)和控制遠程對象。3Jbuilder支持各種應用服務器。Jbuilder與Inprise Application Server緊密集成,同時支持WebLogic Server,支持EJB 1.1和EJB 2.0,可以快速開發(fā)J2EE的電子商務應用。 4利用Jbuilder可創(chuàng)建(沒有專有代碼和標記)純JAVA2應用。由于Jbuilder是用純JAVA語言編寫的,其代碼不含任何專屬代碼和標記,它支持最新的JAVA標準。 5Jbuilder擁有專業(yè)化的圖形調(diào)試介面,支持遠程調(diào)

23、試和多線程調(diào)試,調(diào)試器支持各種JDK版本,包括J2ME/J2SE/J2EE。 Jbuilder環(huán)境開發(fā)程序方便,它是純的JAVA 開發(fā)環(huán)境,適合企業(yè)的J2SE開發(fā)。2.2 本系統(tǒng)采用的圖像壓縮算法本系統(tǒng)采用用軟件編解碼的方法對圖像數(shù)據(jù)壓縮和解壓縮。在授課中屏幕圖像變化率很低,有時屏幕電子教案可能要延用幾分鐘。這種運動圖像信號,除幀內(nèi)像素間相關(guān)外,幀與幀之間的像素值也有很強的相關(guān)性,且?guī)兓^平穩(wěn)。若能利用幀之間的數(shù)據(jù)相關(guān)性,通過特殊變換,屏蔽幀與幀之間的變化,使之表現(xiàn)為大量連續(xù)相同數(shù)據(jù),只保留差異,則使用簡單高效的行程編碼就能得到較高的壓縮比。本系統(tǒng)對幀間編碼使用了兩種方案,一種是基于異或運算

24、的幀間無損壓縮,一種是基于差值量化的幀間有損壓縮。1基于異或運算的無損壓縮:利用異或運算性質(zhì)可知,令X為時刻獲取的屏幕圖像的像素值,Y為時刻獲取的屏幕圖像的像素值,在傳送端,對兩幅圖像的像素按位進行異或運算,相同的像素異或結(jié)果為0。如果幀與幀之間的變化很少,則會出現(xiàn)大量連續(xù)的0。再用簡單的行程編碼對異或結(jié)果進行壓縮,可以得到較好的壓縮結(jié)果。傳輸壓縮后的數(shù)據(jù),在接收端接收并解壓縮,與上一幀圖像像素再次進行異或運算可還原該圖像。32基于差值量化的有損壓縮:由人的視覺、生理、心理學的論證可知,肉眼對大面積圖像能分辨出的灰度等級比對小塊圖像或細節(jié)部分的灰度等級大得多。亦即,如果相鄰像素的色值差別很小,

25、人的眼睛無法分辨,可考慮將相鄰且相近的色值量化為1個色值。3第三章 多媒體教學平臺的設(shè)計3.1 需求分析 現(xiàn)有教學系統(tǒng)的問題目前,市場上現(xiàn)有的網(wǎng)絡(luò)多媒體教學系統(tǒng)成本相對較高,系統(tǒng)依賴性強,針對本校的情況,如果要在每一個計算機教室都安裝這樣的系統(tǒng),那么超額的成本使這項工作難以進行。針對這個問題,研發(fā)一個具有自主知識產(chǎn)權(quán)的跨平臺的多媒體教學系統(tǒng)是一項勢在必行的工作。本系統(tǒng)功能模塊分析本系統(tǒng)采用C/S(Client/Server)模式。學生機作為Client(客戶端),而教師機作為Server(服務端)。教師機為學生機提供服務,并對學生機進行管理。本系統(tǒng)需要有教師機和學生機這兩個部分,教師端功能:屏

26、幕廣播,教師端發(fā)布作業(yè),屏幕錄制,屏幕回放,屏幕監(jiān)視,提問問題、問題答疑,顯示學生機的IP,在線人數(shù)統(tǒng)計,網(wǎng)上聊天,發(fā)出警告,關(guān)機、重啟、注銷;學生端功能:學生端提交作業(yè),接受廣播,接受監(jiān)視,接受警告,接受關(guān)機、重啟和注銷,向老師請教問題等。功能模塊如圖3-1:屏幕操作顯示學生IP顯示在線人數(shù)屏幕回放屏幕廣播屏幕錄制屏幕監(jiān)視遠程控制發(fā)出警告遠程關(guān)機聯(lián)機討論問題聯(lián)機互動提問問題遠程注銷遠程重啟回答問題教師端教師端發(fā)布作業(yè)屏幕操作學生端聯(lián)機互動接受警告接受遠程控制學生端提交作業(yè)接受屏幕廣播接受屏幕監(jiān)視接受遠程關(guān)機接受遠程重啟接受遠程注銷聯(lián)機討論問題向老師請教問題回答老師提問的問題圖3-1功能模塊圖

27、3.2 系統(tǒng)基本結(jié)構(gòu)本系統(tǒng)的設(shè)計主要是針對局域網(wǎng)內(nèi)一臺教師機和多臺學生機的模型,教師機充當服務器的角色,學生機充當客戶機的角色,其系統(tǒng)的基本結(jié)構(gòu)示意圖如圖3-2所示:圖3-2系統(tǒng)結(jié)構(gòu)示意圖3.3協(xié)議設(shè)計的模型基于UDP多媒體轉(zhuǎn)輸協(xié)議設(shè)計的模型系統(tǒng),與RTP/RTCP協(xié)議相比,系統(tǒng)設(shè)計的時候簡化了排序處理等流程,同樣采用了客戶端/服務器模型。下面分別給出服務器的發(fā)送程序流程圖和客戶機的接收流程圖,如圖3-3和圖3-4所示。否是是是否否開始獲取一幀視頻數(shù)據(jù)發(fā)送數(shù)據(jù)包頭添加數(shù)據(jù)包頭生成數(shù)據(jù)包頭視頻數(shù)據(jù)等分為若干數(shù)據(jù)包獲取成功發(fā)送完畢結(jié)束結(jié)束圖3-3服務器的發(fā)送程序流程圖發(fā)送端首先獲取經(jīng)過壓縮的一幀視

28、頻數(shù)據(jù),遞交給UDP分組處理。然后將一幀視頻數(shù)據(jù)按照要求分解為適合網(wǎng)絡(luò)傳輸?shù)囊幌盗行〉臄?shù)據(jù)包,并加上此協(xié)議的分組包頭,其中包括數(shù)據(jù)包的順序號、時間戳,視頻數(shù)據(jù)的壓縮格式等參數(shù),然后完成發(fā)送。發(fā)送端根據(jù)接收端反饋的延遲估計和接收質(zhì)量報告調(diào)整發(fā)送速度??蛻舳藦亩丝讷@取數(shù)據(jù)包后寫入接收緩沖區(qū)。根據(jù)數(shù)據(jù)包頭信息確認數(shù)據(jù)包是否丟失,做出相應處理。由于在發(fā)送端控制每個發(fā)送的數(shù)據(jù)包小于1024字節(jié),所以在止常的網(wǎng)絡(luò)狀況下傳輸?shù)难舆t比較小。而且由于發(fā)送的數(shù)據(jù)包大小一樣,并且嚴格控制數(shù)據(jù)包發(fā)送的時間間隔,傳輸抖動現(xiàn)象發(fā)生的可能性很小。所以,在客戶端只按照接收到的數(shù)據(jù)包的序列號的順序判斷是否有丟失現(xiàn)象發(fā)生。如果接

29、收的數(shù)據(jù)包是有序的,則認為沒有丟失現(xiàn)象發(fā)生加果接收的數(shù)據(jù)包是亂序的,則作為丟失數(shù)據(jù)包處理。經(jīng)過查閱相關(guān)資料證明了這種處理方法是簡單有效的。再接收到一個完整的幀數(shù)據(jù)的所有分組后,根據(jù)序列號是否連續(xù)判斷是否發(fā)生數(shù)據(jù)包的丟失,分離數(shù)據(jù)包頭,最后恢復成一幀完整的視頻數(shù)據(jù),再根據(jù)縮格式標記送往相應的解碼流程。是否否是否是開始丟失這幀數(shù)據(jù)解碼提示回復一幀數(shù)據(jù)分離數(shù)據(jù)包頭寫入緩沖區(qū)讀數(shù)據(jù)包頭序列號讀出端口數(shù)據(jù)是否丟失數(shù)據(jù)接收完畢結(jié)束結(jié)束圖3-4客戶端的發(fā)送程序流程圖第四章 多媒體教學平臺的實現(xiàn)4.1屏幕錄制由于屏幕截取比較接近操作系統(tǒng)的操作,在Windows操作系統(tǒng)下,該操作幾乎成了VC、VB等的專利,事實

30、上,使用Java JDK提供的一個Robot類,來完成屏幕截取操作,更加簡單。Robot類的對象,可以完成對屏幕像素的拷貝,完成屏幕圖像截取操作。該類用于產(chǎn)生與本地操作系統(tǒng)有關(guān)的底層輸入、測試應用程序運行或自動控制應用程序運行。Robot類提供了一個方法:createScreenCapture(),可以直接將全屏幕或某個屏幕區(qū)域的像素拷貝到一個BufferedImage對象中,我們只需要將該對象寫入到一個圖像文件之中,就完成了屏幕到圖像的拷貝過程。循環(huán)這個操作,將一系列圖像文件保存到硬盤上的某個文件夾中,這樣就可以完成屏幕錄制了,在本課題軟件中捕獲的是全屏幕區(qū)域。實現(xiàn)的流程圖如圖4-1所示:否

31、是開始用Robot.createScreenCapture()進行圖像捕獲把捕獲后的圖像存放到圖像數(shù)據(jù)緩沖區(qū)BufferedImage圖像編碼保存成JPG格式錄制完成結(jié)束通過FileOutputStream文件輸出流往指定的文件夾寫入圖片關(guān)閉輸出流睡眠40毫秒圖4-1屏幕錄制執(zhí)行過程流程圖/取得當前顯示器的分辨率:screenSize = Toolkit.getDefaultToolkit().getScreenSize();/獲得屏幕大小rectangle = new Rectangle(screenSize); /可以捕獲屏幕區(qū)域/實現(xiàn)錄制過程的主要代碼如下:while (true) tr

32、y BufferedImage image = robot.createScreenCapture(rectangle); /把捕獲到的指定屏幕矩形區(qū)域圖像存放到可訪問的圖像數(shù)據(jù)緩沖區(qū)Image,createScreenCapture捕獲指定屏幕矩形區(qū)域的圖像 fos = new FileOutputStream("C:records" + i + ".jpg");/創(chuàng)建一個文件輸出流對象,往指定的文件里面寫圖片 /FileOutputStream創(chuàng)建一個向指定 File 對象表示的文件中寫入數(shù)據(jù)的文件輸出流 JPEGCodec.createJPEGEn

33、coder(fos).encode(image);/圖像編碼成JPEG fos.close();/關(guān)閉輸出流 i = i + 1;/進行下一張的圖片寫入 Thread.sleep(40);/每秒25幀,每40毫秒保存一張 當在主界面上點擊“屏幕錄制”按鈕的時候,會彈出一個錄制的對話框,效果如圖4-2所示:圖4-2屏幕錄制界面4.2屏幕播放屏幕播放可以讓教師預先錄制好屏幕圖像,以JPG格式的圖片形式存儲,以后通過“屏幕回放”功能可以進行播放,再現(xiàn)錄制時的屏幕圖像畫面。這既可以方便老師提前備課,又解決了學生跟不上教學進度的問題,還可以讓學生在課余的時間自己去溫習上課的內(nèi)容,極大提高教學效率這個功能

34、是建立在屏幕錄制之后的,把屏幕錄制保存下來的一系列連續(xù)的圖片調(diào)出來并與屏幕錄制相同的速度顯示在電腦屏幕上,這樣就可以看到之前錄制的屏幕了。其實現(xiàn)的流程圖如圖4-3如下:否是開始取得要播放圖片的文件夾從序號0開始取一張的圖片把圖片顯示到屏幕上播放完成結(jié)束按錄制時的先后順序從0開始編號圖片睡眠40毫秒取下一張圖片圖4-3屏幕播放執(zhí)行過程流程圖實現(xiàn)的主要代碼如下:public void run()int i = 0;/定義圖片從序號0開始 while(true) try cimage = loadImage(i + ".jpg");/取得一張圖片 i = i + 1; repai

35、nt();/重繪 Thread.sleep(40);/與錄像時每秒幀數(shù)一致catch(Exception e) e.printStackTrace();/打印異常的消息 System.out.println(e); 當在主界面上點擊“屏幕播放”按鈕的時候,就會看到一個播放的對話框,效果如圖4-4所示:圖4-4屏幕播放界面圖4.3教師機與學生機的連接市場上的很多軟件(如本校計算機教室用到的凌波多媒體教學軟件),如果教師機比學生機先啟動的話,后啟動的學生機就連接不上教師機了。本系統(tǒng)克服了這一缺點:不管學生機先啟動還是教師機先啟動,教師機與學生機都能自動連接。本系統(tǒng)采用了套接字Socket機制,分別

36、在教師端程序和學生端程序里面寫了一個連接文件ClientSocket.java,這個就是克服以上缺點的重點方法。而且程序里面用到一個端口和IP的構(gòu)造函數(shù),并沒有對方機子的端口號和IP綁定,所以在運行軟件的時候,不需要進行物理的設(shè)計端口號和IP。其實現(xiàn)的代碼如下: public ClientSocket(String ip,int port) /構(gòu)造函數(shù),IP地址和端口號 this.ip=ip; this.port=port; /創(chuàng)建socket連接: public void CreateConnection()throws Exception try socket=new Socket(ip,

37、port); catch(Exception e) e.printStackTrace(); if(socket!=null)socket.close(); throw e; finally 創(chuàng)建了Socket連接了之后,用方法getMessageStream()來取得消息流;當服務器窗口關(guān)閉或者關(guān)閉Socket或者無法取得消息流的時候,用方法shutDowConnection()來實現(xiàn)斷開連接。當實現(xiàn)連接后,學生端會顯示:“教師端已經(jīng)連接”,如圖4-5右下角所示:圖4-5學生機實現(xiàn)連接后的界面圖同時,教師端也會顯示所連上的學生機的IP,如圖4-6左上角所示:圖4-6學生機IP已顯示的教師端界

38、面圖由于教師端和學生端用到的是同一個Socket文件來實現(xiàn)連接,所以只有上面的程序,也只能實現(xiàn)教師機和學生機的一對一的連接,根本無法實現(xiàn)一臺教師機連接多臺學生機的設(shè)想。因此,本系統(tǒng)在教師端程序中還采用了多線程機制,實現(xiàn)接收連接或者主動連接多臺學生機。/創(chuàng)建廣播通信:MulticastSocket multicastSocket = new MulticastSocket(6789);/加入廣播組:multicastSocket.joinGroup(inetAddress);4.4屏幕廣播廣播功能將教師機屏幕上的畫面?zhèn)鬏斀o所有學生機。教師在不進行額外設(shè)置的情況下,對桌面所操作的畫面、屏幕播放的畫

39、面進行有效截取。屏幕的截取主要使用的是java.util.Robot類來捕獲屏幕,可以實現(xiàn)對屏幕進行一個全屏捕捉,代碼如下:public Icon captureFullScreen() fullScreenImage = robot.createScreenCapture(new Rectangle(Toolkit.getDefaultToolkit().getScreenSize();/捕獲屏幕圖像 ImageIcon icon = new ImageIcon(fullScreenImage); return icon; /把捕獲的桌面圖像以JPEG的格式進行存儲:public void

40、saveAsJPEG(File file) throws IOException ImageIO.write(getPickedImage(),"JPEG",file);/將捕獲的屏幕保存為JPEG格式的文件 public void write(OutputStream out) throws IOException ImageIO.write(getPickedImage(),defaultImageFormater,out);/將捕獲的屏幕保存為默認格式的文件圖像信息進行在存儲的同時也進行了快速壓縮,在確保圖片質(zhì)量的同時降低傳輸?shù)男畔⒘?。代碼如下:/為等比縮放計算輸出的

41、圖片寬度及高度double rate1 = (double) srcFile.getWidth(null) / (double) width+ 0.1; double rate2 = (double) srcFile.getHeight(null) / (double) height+ 0.1;double rate = rate1 > rate2 ? rate1 : rate2;int new_w = (int) (double) srcFile.getWidth(null) / rate);int new_h = (int) (double) srcFile.getHeight(nu

42、ll) / rate);BufferedImagetag=newBufferedImage(new_w,new_h,BufferedImage.TYPE_INT_RGB); /創(chuàng)建緩沖區(qū)圖像BufferedImage的一個對象tag.getGraphics().drawImage(srcFile, 0, 0, new_w, new_h, null); /繪制縮小后的圖newImage=new ImageIcon(tag);/設(shè)計壓縮之后臨時存放的位置:FileOutputStream out = new FileOutputStream("screen.jpg");JPEG

43、ImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);/對輸出流進行JPEG格式編碼JPEGEncodeParam jep = JPEGCodec.getDefaultJPEGEncodeParam(tag);/進行壓縮質(zhì)量的處理:jep.setQuality(quality, true);encoder.encode(tag, jep);out.close();srcFile.flush();當圖片處理完之后,采用UDP傳輸協(xié)議對數(shù)據(jù)進行傳輸,有效地進行組播。本系統(tǒng)設(shè)計發(fā)送數(shù)據(jù)報文方法如下所示:public void sendMuti

44、Cast(String s)trybyte b=s.getBytes();InetAddress inetAddress=InetAddress.getByName("");/組播組:DatagramPacket datagramPacket =newDatagramPacket(b,b.length, inetAddress,6789); /構(gòu)造一個數(shù)據(jù)報對象,端口號:6789MulticastSocket multicastSocket = new MulticastSocket();multicastSocket.send(datagramPacke

45、t);/發(fā)送該UDP 包。此時:只有該組中的成員才能收到該UDP包multicastSocket.close() ; /關(guān)閉組播的Socketcatch(Exception e)System.out.println("error in Sender.java's sendMutiCast"+e); 其組播流程如圖4-7所示:是否開始關(guān)閉MulticastSocket離開組播解碼數(shù)據(jù)報提取信息等待接收數(shù)據(jù)報發(fā)送multicastSocket加入一個組播組建立MulticastSocket創(chuàng)建數(shù)據(jù)發(fā)送完畢結(jié)束圖4-7組播程序流程圖同時,用一個專門的廣播線程,將屏幕廣播發(fā)

46、到學生端,其實現(xiàn)的代碼如下:while(IsWork) try ScreenCapture capture = ScreenCapture.getInstance(); fafa.SetScreen(capture.getFullIcon();/發(fā)送屏幕廣播到學生端 fafa.SendImage(); fafa.SendTeacher(); sleep(1000); catch(Exception e) 廣播發(fā)出之后,在學生端用函數(shù)ScreenBroadcastClient()來接收教師端的廣播,其實現(xiàn)的代碼如下:public ScreenBroadcastClient() mypanel=n

47、ew MyPanel(); this.getContentPane().add(mypanel); this.clock.start(); this.setDefaultCloseOperation(this.EXIT_ON_CLOSE); 屏幕廣播實現(xiàn)的效果圖如圖4-8所示:圖4-8屏幕廣播效果圖4.5 教師端發(fā)布作業(yè)發(fā)布文件功能主要是用于課堂上,當老師要給學生布置作業(yè)或者參考資料時,把相應格式的文件發(fā)送到所有連接上教師機的學生機上。發(fā)布文件功能的實現(xiàn)基本思路如下:1.教師端和學生端建立連接;2.教師端把要發(fā)送的相應格式的文件拷貝到教師機下面的臨時文件夾中;3.教師端往學生端發(fā)送已經(jīng)準備好可

48、以下載的命令;4.學生端接收到教師端發(fā)送過來的命令后,調(diào)用方法主動從教師端下載文件。發(fā)布文件流程圖如圖4-9,如下所示:否是是否是否教師端發(fā)送命令是否連接成功開始結(jié)束調(diào)用下載方法,主動去教師端下載UDP發(fā)送是否關(guān)閉教師端等待學生端連接學生端接收到命令是否已下載完畢圖4-9 發(fā)布文件流程圖教師端主要代碼:String Filename=SetFile.getFile();/獲取文件名String ff=SetFile.getDirectory()+Filename;/獲取文件全路徑CopyFileFrom(ff); /拷貝文件到本地目錄/發(fā)送通知報文 String cmd="DownL

49、oadHomeWork"/定義用于發(fā)送給學生端的"DownLoadHomeWork"命令 CmdParser ss=new CmdParser();/聲明了一個封裝命令方法ss對象 String msg=ss.FormatCmd(cmd,Filename,getLocalIp(),"student");/定義msg信息 SendMsg kl=new SendMsg();/實例化SendMsg kl.sendMutiCast(msg);/發(fā)送信息教師端的主代碼中調(diào)用了CopyFileFrom()方法,在CopyFileFrom()中,定義了一個緩

50、存區(qū)temp,教師端把將要發(fā)布給學生的文件臨時存放到temp中,并等待學生端來下載,在等待的同時,向?qū)W生端發(fā)送通知下載報文。學生端接收到通知后,調(diào)用下載命令去下載文件,主要代碼如下:if(cmd.equals("DownLoadHomeWork")/如果教師端發(fā)布"DownLoadHomeWork"命令String FileName=fafa.GetContent(mutiCastMsg); student.DownLoadHomeWork(FileName);/調(diào)用DownLoadHomeWork()方法進行下來 DownLoadHomeWork()方

51、法的重要代碼如下:public void DownLoadHomeWork(String home) /啟動文件下載線程 String command="http:/"+this.TeacherIp+":8088/temp" HttpDownLoad fafa=new HttpDownLoad(command,home,this); fafa.start(); HttpDownLoad下載方法的主要代碼如下:byte b=new byte1024;int nRead;DataOutputStreamFileOut=newDataOutputStream(

52、newFileOutputStream(objName);while(nRead=input.read(b)>0) ) FileOut.write(b);FileOut.close();stu.modeMsg.addElement("老師已經(jīng)把作業(yè)"+objName+"發(fā)布到學生端在的文件夾!");在教師端點擊發(fā)送文件時會彈出文件選擇對話框,如圖4-10所示:圖4-10文件選擇對話框教師端給學生端發(fā)布完文件后的提示對話框如果4-11所示:圖4-11 發(fā)布完文件后的對話框當教師端發(fā)布完文件后,已接收到文件的學生端會在文本討論區(qū)顯示:老師已經(jīng)把作業(yè)XX

53、發(fā)布到學生端所在的文件夾。學生端所在的文件夾就是安裝本軟件所在的文件夾。顯示效果如圖4-12所示:圖4-12教師端發(fā)布完作業(yè)后學生端的消息顯示圖4.6學生端提交作業(yè)學生端跟教師端連接上之后,學生端就可以往教師端發(fā)送文件。學生端在選擇文件之后,點擊上傳,學生端對文件進行封裝后通過UDP傳輸,文件會保存到教師端的文件夾下。其流程圖如圖4-13所示:否是開始保存到教師端指定的文件夾UDP傳輸取得文件,進行封裝執(zhí)行提交作業(yè)命令上傳成功結(jié)束圖4-13提交作業(yè)執(zhí)行過程流程圖實現(xiàn)提交作業(yè)的主要代碼如下:File fi=new File(FilePath);/ 構(gòu)建新的BufferedReader對象s=ss

54、.accept();/監(jiān)聽是否與教師機連接DataInputStreamdis=newDataInputStream(newBufferedInputStream(s.getInputStream();/s.getInputStream()獲得網(wǎng)絡(luò)連接輸入,同時返回一個IutputStream對象實例dis.readByte();DataInputStream fis=new DataInputStream(new BufferedInputStream(new FileInputStream(FilePath);DataOutputStreamps=newDataOutputStream(s

55、.getOutputStream();/s.getOutputStream()網(wǎng)絡(luò)連接輸出ps.writeUTF(fi.getName();/將文件名傳給教師端ps.flush();/將內(nèi)存中的數(shù)據(jù)一次性輸出ps.writeLong(long)fi.length();/將文件長度傳給教師端ps.flush();len=(long)fi.length();/取得上傳文件字節(jié)的大小 int bufferSize=8000;/設(shè)定允許讀取到緩沖區(qū)的最大長度byte buf=new bytebufferSize;/要將字節(jié)流讀入的緩沖區(qū)學生發(fā)送作業(yè)的同時,教師端也有個接收程序:ClientFile.java。教師端等待學生端的文件上傳連接,在連接后將文件名傳輸給教師端,并把文件大小告知教師端,教師端通過這些信息,接收文件信息,設(shè)定好自身的保存目錄,循環(huán)接收文件,直到文件上傳完畢,主要用到的函數(shù)如下:創(chuàng)建連接的

溫馨提示

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

評論

0/150

提交評論