




已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
梧 州 學(xué) 院畢 業(yè) 論 文論文題目 局域網(wǎng)內(nèi)多媒體教學(xué)系統(tǒng) 的研究與實現(xiàn) 系 別 計算機與電子信息工程系 專 業(yè) 計算機科學(xué)與技術(shù) 班 級 學(xué) 號 學(xué)生姓名 指導(dǎo)教師(簽名) 完成時間 2009 年 5 月摘要隨著我國計算機科學(xué)技術(shù)的迅速發(fā)展,多媒體教學(xué)已經(jīng)成為現(xiàn)代教育的重要組成部分,教育信息化勢在必行,網(wǎng)絡(luò)多媒體教學(xué)正在逐漸成為主流的教育形式。網(wǎng)絡(luò)多媒體教學(xué)為學(xué)習(xí)者提供了更為豐富、優(yōu)質(zhì)的學(xué)習(xí)資源,對提高教學(xué)質(zhì)量、轉(zhuǎn)變教學(xué)觀念以及推進全民教育產(chǎn)生積極影響。本課題針對本校計算機教室的教學(xué)和管理需要,設(shè)計并實現(xiàn)了一個局域網(wǎng)內(nèi)多媒體教學(xué)系統(tǒng)。在屏幕廣播功能上,采用java.util.robot類來進行全屏捕捉,捕捉后的桌面圖片以jpeg的格式進行存儲,并在存儲的過程中進行了快速壓縮,在確保圖片質(zhì)量的同時降低傳輸?shù)男畔⒘浚鉀Q了現(xiàn)有的商業(yè)化網(wǎng)絡(luò)教學(xué)系統(tǒng)廣播時網(wǎng)速卡的問題;在屏幕錄制功能上,采用robot類來完成對屏幕的捕獲;在多媒體數(shù)據(jù)壓縮技術(shù)上,根據(jù)不同的媒體信息的特性采用了不同的壓縮方式;在提交作業(yè)功能上,通過應(yīng)用層協(xié)議,用udp方式把要上交的作業(yè)高效率地傳到教師端。本系統(tǒng)實現(xiàn)了屏幕廣播、屏幕錄制、屏幕回放、教師端發(fā)布作業(yè)和學(xué)生端提交作業(yè)等功能, 并且測試結(jié)果表明,本系統(tǒng)取得了廣播延時小、發(fā)送文件速度快、系統(tǒng)運行穩(wěn)定的效果。關(guān)鍵詞:局域網(wǎng) 多媒體教學(xué)系統(tǒng) 屏幕廣播 屏幕錄制the research and implement of multimedia teaching system 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 gradually 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 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 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 function 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 application 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 assignment and the student is held submitting school assignment and 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: local area network multimedia teaching system screenbroadcastscreenbranscribing目錄第一章 緒論11.1 開發(fā)背景11.2 當(dāng)前多媒體教學(xué)系統(tǒng)技術(shù)現(xiàn)狀11.3 選題的意義31.4課題目標(biāo)3第二章 系統(tǒng)開發(fā)于相關(guān)技術(shù)52.1 java語言與開發(fā)工具52.2 本系統(tǒng)采用的圖像壓縮算法5第三章 多媒體教學(xué)平臺的設(shè)計73.1 需求分析73.2 系統(tǒng)基本結(jié)構(gòu)83.3協(xié)議設(shè)計的模型9第四章 多媒體教學(xué)平臺的實現(xiàn)114.1 屏幕錄制114.2 屏幕播放134.3教師機與學(xué)生機的連接144.4屏幕廣播164.5 教師端發(fā)布作業(yè)214.6學(xué)生端提交作業(yè)24第五章 軟件測試過程275.1對屏幕錄制、屏幕回放的測試275.2對教師機和學(xué)生機自動連接的測試275.2對屏幕廣播、教師端發(fā)布作業(yè)的測試305.4對提交作業(yè)的測試30第六章 總結(jié)與改進32參考文獻33致謝3435第一章 緒論1.1 開發(fā)背景計算機輔助教學(xué)改變了以往教學(xué)中形式單一,信息量小等等諸多弊病,多媒體輔助教學(xué)能實現(xiàn)個性化教育,發(fā)展被教育者的積極主動性,具有良好的視覺、聽覺效果、豐富的知識表達能力等多種有點。隨著全球信息化進程的不斷發(fā)展,教育信息化勢在必行,多媒體教學(xué)正在逐漸成為主流教育形式。多媒體教學(xué)為學(xué)習(xí)者提供了更為豐富、優(yōu)質(zhì)的學(xué)習(xí)資源,必將對提高教學(xué)質(zhì)量,轉(zhuǎn)變教學(xué)觀念以及推進全面教育產(chǎn)生了積極的影響。1.2 當(dāng)前多媒體教學(xué)系統(tǒng)技術(shù)現(xiàn)狀1多媒體教室隨著教育事業(yè)的不斷發(fā)展,教學(xué)改革的不斷深入,借助計算機網(wǎng)絡(luò)技術(shù)和多媒體技術(shù),改變傳統(tǒng)的教學(xué)手段,已成為各類學(xué)校改善教學(xué)條件、提高教學(xué)質(zhì)量、強調(diào)素質(zhì)教育、培養(yǎng)順應(yīng)新時期要求的高素質(zhì)人才的共同需求1。現(xiàn)在多媒體網(wǎng)絡(luò)教室將多媒體計算機同網(wǎng)絡(luò)技術(shù)緊密結(jié)合起來,在網(wǎng)絡(luò)教學(xué)的基礎(chǔ)之上更強調(diào)電腦輔助教學(xué)功能。既教師利用網(wǎng)絡(luò)多媒體教學(xué)平臺直接在計算機上進行課程教學(xué),并能將有限的資源實現(xiàn)共享,達到一室多用,一室多能。多媒體網(wǎng)絡(luò)教室在計算機網(wǎng)絡(luò)的基礎(chǔ)上,借助影音傳輸和控制系統(tǒng),實現(xiàn)聲音、圖像等多媒體信息在計算機網(wǎng)絡(luò)上的實時傳輸,使得各種文字、圖形、圖像、聲音、動畫等多媒體資料皆可用作教學(xué)素材,從而使得教學(xué)的內(nèi)容和方式更加生動活潑、多姿多彩。傳統(tǒng)意義上的多媒體網(wǎng)絡(luò)教室包括計算機、網(wǎng)絡(luò)設(shè)備以及操作系統(tǒng)。現(xiàn)代的多媒體網(wǎng)絡(luò)教室還要具備教師和學(xué)生之間能夠相互溝通、輔導(dǎo)和控制的多媒體網(wǎng)絡(luò)教室平臺軟件。有了這樣的平臺軟件,教師就能夠向?qū)W生廣播、轉(zhuǎn)播屏幕內(nèi)容和聲音,并能夠進行遠程控制學(xué)生機,使教學(xué)更加方便。因此,一個完整的多媒體電子教室應(yīng)包括:計算機 (pc):教師機 (服務(wù)器),學(xué)生機;網(wǎng)絡(luò)設(shè)備:網(wǎng)卡,網(wǎng)線,集線器或交換機等;操作系統(tǒng):windows;其它設(shè)備:配件 (耳麥),應(yīng)用軟件,教學(xué)軟件,機房設(shè)備 (防靜電設(shè)備,穩(wěn)壓電源等)。多媒體教室的基本構(gòu)成如圖1-1所示:投影儀掃描儀放像機光盤庫教師機服務(wù)器學(xué)生機學(xué)生機學(xué)生機學(xué)生機學(xué)生機 圖1-1 多媒體教室教學(xué)示意圖2多媒體教學(xué)系統(tǒng) 多媒體教學(xué)系統(tǒng),可以將教師的屏幕畫面和聲音傳輸 (播)給所有或特定的學(xué)生,并可以監(jiān)看學(xué)生的屏幕,控制學(xué)生的操作。教師與學(xué)生可以雙向交談,任何教學(xué)軟件和多媒體聲、像教學(xué)資料,均可以對學(xué)生實時播送和監(jiān)看,從而達到多媒體的電腦教學(xué)的目的。多媒體教學(xué)系統(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)方式的多媒體教學(xué)系統(tǒng)更具有優(yōu)勢。由于采用專用的視頻和音頻控制芯片、控制電纜和控制臺,多媒體教學(xué)系統(tǒng)的圖像清晰、傳送可靠,而且不依賴于計算機原有的硬件平臺和軟件平臺。但由于采用專門的硬件設(shè)備,成本難以下降,由于使用專用的多媒體卡和線路連接使系統(tǒng)維護困難,系統(tǒng)升級困難,使用功能比較單一。(2)軟件實現(xiàn)方式軟件實現(xiàn)方式是指運行于底層數(shù)據(jù)網(wǎng)環(huán)境之上的,完全用軟件來實現(xiàn)的多媒體教學(xué)系統(tǒng),多媒體的影音信號及控制信號均通過底層數(shù)據(jù)網(wǎng)進行傳輸。軟件版的多媒體教學(xué)系統(tǒng)通過一套專門設(shè)計的軟件,利用計算機網(wǎng)絡(luò),來實現(xiàn)原來硬件多媒體教學(xué)系統(tǒng)的所有功能。此方式的特點是成本低,無需添加其它附件,安裝維護簡單,軟件版本容易升級,可實現(xiàn)多種功能,但由于圖像傳輸需經(jīng)過壓縮/解壓縮技術(shù)完成,故對計算機硬件配置及網(wǎng)絡(luò)速度有較高限定要求。目前軟件方式在圖像和聲音傳輸效果,尤其語音教學(xué)功能方面還有待于進一步提高與完善。(3)軟硬件結(jié)合實現(xiàn)方式軟硬件結(jié)合實現(xiàn)方式是通過在每臺計算機中加裝一塊多媒體網(wǎng)卡,并用專門的多媒體傳輸網(wǎng)線將每臺計算機串接起來,以此來實現(xiàn)多媒體影音信號的獨立通道傳輸。這樣就確保了影像的同步全屏傳輸,并且對學(xué)生機的硬件配置要求不高,不需要加聲卡,多媒體網(wǎng)卡上自帶語音功能。此方式成本太高,而且由于多媒體控制信號仍需借助底層數(shù)據(jù)網(wǎng)實現(xiàn)傳輸,每臺計算機中需安裝軟件驅(qū)動程序,整個系統(tǒng)安裝、維護起來有一定的難度,需具有一定的網(wǎng)絡(luò)知識。基于網(wǎng)絡(luò)設(shè)計的軟件多媒體教學(xué)系統(tǒng)是多媒體網(wǎng)絡(luò)教室的發(fā)展方向。1.3 選題的意義本課題針對多媒體教學(xué)模式由傳統(tǒng)的黑板教學(xué)模式向多媒體教學(xué)模式發(fā)展的新趨勢,結(jié)合java在jbuilder平臺成熟的技術(shù),著重在于計算機匯集視聽媒體于一身的發(fā)展,對多媒體教學(xué)系統(tǒng)做一些新的研究與應(yīng)用。傳統(tǒng)的電腦教室,一般輔以投影儀或硬件網(wǎng)絡(luò)系統(tǒng)來建立多媒體教學(xué)系統(tǒng),但由于高昂的成本和一些其它的原因,并不是一般教室可以配備的,而且硬件設(shè)備耗損大、維護繁瑣、升級麻煩都是令學(xué)校困擾的問題,而作為一種純軟件的解決方案的多媒體教學(xué)系統(tǒng),完全避免了這些硬件問題,而且教師可以把理論教學(xué)與實踐操作相結(jié)合,直接在教師機上進行各種教學(xué)演示,并且把每一步操作過程都與實時同步傳送到學(xué)生的電腦屏幕上。各種大量的多媒體課件資料、光盤教學(xué)資源、實驗演示系統(tǒng)、教學(xué)方法和經(jīng)驗等都可以借助多媒體教學(xué)系統(tǒng)軟件這種匯集語言、圖片、文字、動畫于一體的現(xiàn)代交互式教學(xué)模式實現(xiàn)了??梢栽谡麄€多媒體教室共享文字、圖像、語音、視頻資料。這樣,通過構(gòu)建一種文字、語音、視頻圖像的相互交流環(huán)境,學(xué)生可以同時在自己的電腦屏幕上分享各種教學(xué)資源,不但大大較少了教師端工作負擔(dān),提高了教學(xué)效率,而且也使教學(xué)內(nèi)容及其生動活潑,學(xué)生樂于接受。目前,國內(nèi)已經(jīng)有一些相對成熟的教學(xué)軟件,比如凌波多媒體網(wǎng)絡(luò)教室軟件和博智多媒體電子教室系統(tǒng),這些軟件都有很強大的功能,而且操作方便;但是,這些軟件在市場上都有著昂貴的價格,而且操作系統(tǒng)依賴強。介于這些軟件以上的缺點,本課題選擇用一種更新更快捷的語言java來實現(xiàn)。并且是根據(jù)本校的實際情況,量身定做,使它更加符合本校多媒體教學(xué)的要求,以進一步提高本校多媒體教學(xué)質(zhì)量。1.4課題目標(biāo)多媒體教學(xué)系統(tǒng)利用計算機教室現(xiàn)有的電腦網(wǎng)絡(luò)設(shè)備,實現(xiàn)教師機對學(xué)生機的廣播、監(jiān)控、語音教學(xué)等操作,輔助學(xué)生完成電腦軟件的學(xué)習(xí)和使用。多媒體教學(xué)系統(tǒng)適用于各類學(xué)校以及企事業(yè)單位、培訓(xùn)機構(gòu)的電腦機房、計算機網(wǎng)絡(luò)教室及電子閱覽室中。本課題要實現(xiàn)以下功能:屏幕廣播:實時傳送教師或某個學(xué)生的電腦畫面到某組或全體學(xué)生的電腦屏幕上,教師可以用這個功能進行多媒體課件的教學(xué),演示word、sql數(shù)據(jù)庫等軟件的操作,還可以讓某個學(xué)生進行示范; 屏幕錄制:錄制上課內(nèi)容以便制作教學(xué)視頻; 屏幕回放:對已錄制的內(nèi)容進行網(wǎng)絡(luò)回放;教師端發(fā)布作業(yè):老師可以把要布置的作業(yè)放到所有已經(jīng)與教師機連接上的學(xué)生機上。學(xué)生端提交作業(yè):學(xué)生可以把相應(yīng)格式的文件發(fā)送到教師的電腦中;提問、回答與討論:當(dāng)老師向?qū)W生提出問題的時候,同學(xué)回答老師的問題,當(dāng)同學(xué)有疑問向老師請教的時候,老師幫同學(xué)解答問題;顯示ip:顯示已和教師機連接的學(xué)生機的ip;屏幕監(jiān)視:讓教師對選中ip的學(xué)生機的電腦屏幕進行實時監(jiān)視,教師可以不離開座位就了解學(xué)生的學(xué)習(xí)情況,實現(xiàn)對整個網(wǎng)絡(luò)上學(xué)生機的監(jiān)控與管理; 在線人數(shù):統(tǒng)計已經(jīng)與教師機連接上的學(xué)生機數(shù),以便老師了解學(xué)生到課情況;警告:教師機在對學(xué)生機進行屏幕監(jiān)視的時候,發(fā)現(xiàn)學(xué)生沒有按照老師的要求進行相關(guān)操作的時候,教師機可以使用命令對其進行警告;關(guān)機、重啟、注銷:可以把選中ip的學(xué)生機關(guān)閉、重啟和注銷操作。第二章 系統(tǒng)開發(fā)于相關(guān)技術(shù)2.1 java語言與開發(fā)工具2.1.1java語言的特性本課題選擇java作為開發(fā)語言,因為它具有面向?qū)ο?、分布式、平臺無關(guān)、高性能、支持多線程等特性。2.1.2 jbuilder的特點本課題選擇jbuilder為開發(fā)平臺,它具有以下特性:1jbuilder支持最新的java技術(shù),包括applets、jsp/servlets、javabean以及ejb(enterprise javabeans)的應(yīng)用。 2用戶可以自動地生成基于后端數(shù)據(jù)庫表的ejb java類,jbuilder同時還簡化了ejb的自動部署功能。此外它還支持corba,相應(yīng)的向?qū)С绦蛴兄谟脩羧娴毓芾韎dl(分布應(yīng)用程序所必需的接口定義語言interface definition language)和控制遠程對象。3jbuilder支持各種應(yīng)用服務(wù)器。jbuilder與inprise application server緊密集成,同時支持weblogic server,支持ejb 1.1和ejb 2.0,可以快速開發(fā)j2ee的電子商務(wù)應(yīng)用。 4利用jbuilder可創(chuàng)建(沒有專有代碼和標(biāo)記)純java2應(yīng)用。由于jbuilder是用純java語言編寫的,其代碼不含任何專屬代碼和標(biāo)記,它支持最新的java標(biāo)準(zhǔn)。 5jbuilder擁有專業(yè)化的圖形調(diào)試介面,支持遠程調(diào)試和多線程調(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)對幀間編碼使用了兩種方案,一種是基于異或運算的幀間無損壓縮,一種是基于差值量化的幀間有損壓縮。1基于異或運算的無損壓縮:利用異或運算性質(zhì)可知,令x為時刻獲取的屏幕圖像的像素值,y為時刻獲取的屏幕圖像的像素值,在傳送端,對兩幅圖像的像素按位進行異或運算,相同的像素異或結(jié)果為0。如果幀與幀之間的變化很少,則會出現(xiàn)大量連續(xù)的0。再用簡單的行程編碼對異或結(jié)果進行壓縮,可以得到較好的壓縮結(jié)果。傳輸壓縮后的數(shù)據(jù),在接收端接收并解壓縮,與上一幀圖像像素再次進行異或運算可還原該圖像。32基于差值量化的有損壓縮:由人的視覺、生理、心理學(xué)的論證可知,肉眼對大面積圖像能分辨出的灰度等級比對小塊圖像或細節(jié)部分的灰度等級大得多。亦即,如果相鄰像素的色值差別很小,人的眼睛無法分辨,可考慮將相鄰且相近的色值量化為1個色值。3第三章 多媒體教學(xué)平臺的設(shè)計3.1 需求分析3.1.1 現(xiàn)有教學(xué)系統(tǒng)的問題目前,市場上現(xiàn)有的網(wǎng)絡(luò)多媒體教學(xué)系統(tǒng)成本相對較高,系統(tǒng)依賴性強,針對本校的情況,如果要在每一個計算機教室都安裝這樣的系統(tǒng),那么超額的成本使這項工作難以進行。針對這個問題,研發(fā)一個具有自主知識產(chǎn)權(quán)的跨平臺的多媒體教學(xué)系統(tǒng)是一項勢在必行的工作。3.1.2 本系統(tǒng)功能模塊分析本系統(tǒng)采用c/s(client/server)模式。學(xué)生機作為client(客戶端),而教師機作為server(服務(wù)端)。教師機為學(xué)生機提供服務(wù),并對學(xué)生機進行管理。本系統(tǒng)需要有教師機和學(xué)生機這兩個部分,教師端功能:屏幕廣播,教師端發(fā)布作業(yè),屏幕錄制,屏幕回放,屏幕監(jiān)視,提問問題、問題答疑,顯示學(xué)生機的ip,在線人數(shù)統(tǒng)計,網(wǎng)上聊天,發(fā)出警告,關(guān)機、重啟、注銷;學(xué)生端功能:學(xué)生端提交作業(yè),接受廣播,接受監(jiān)視,接受警告,接受關(guān)機、重啟和注銷,向老師請教問題等。功能模塊如圖3-1:屏幕操作顯示學(xué)生ip顯示在線人數(shù)屏幕回放屏幕廣播屏幕錄制屏幕監(jiān)視遠程控制發(fā)出警告遠程關(guān)機聯(lián)機討論問題聯(lián)機互動提問問題遠程注銷遠程重啟回答問題教師端教師端發(fā)布作業(yè)屏幕操作學(xué)生端聯(lián)機互動接受警告接受遠程控制學(xué)生端提交作業(yè)接受屏幕廣播接受屏幕監(jiān)視接受遠程關(guān)機接受遠程重啟接受遠程注銷聯(lián)機討論問題向老師請教問題回答老師提問的問題圖3-1 功能模塊圖3.2 系統(tǒng)基本結(jié)構(gòu)本系統(tǒng)的設(shè)計主要是針對局域網(wǎng)內(nèi)一臺教師機和多臺學(xué)生機的模型,教師機充當(dāng)服務(wù)器的角色,學(xué)生機充當(dāng)客戶機的角色,其系統(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è)計的時候簡化了排序處理等流程,同樣采用了客戶端/服務(wù)器模型。下面分別給出服務(wù)器的發(fā)送程序流程圖和客戶機的接收流程圖,如圖3-3和圖3-4所示。否是是是否否開始獲取一幀視頻數(shù)據(jù)發(fā)送數(shù)據(jù)包頭添加數(shù)據(jù)包頭生成數(shù)據(jù)包頭視頻數(shù)據(jù)等分為若干數(shù)據(jù)包獲取成功發(fā)送完畢結(jié)束結(jié)束圖3-3 服務(wù)器的發(fā)送程序流程圖發(fā)送端首先獲取經(jīng)過壓縮的一幀視頻數(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ù)包頭信息確認(rèn)數(shù)據(jù)包是否丟失,做出相應(yīng)處理。由于在發(fā)送端控制每個發(fā)送的數(shù)據(jù)包小于1024字節(jié),所以在止常的網(wǎng)絡(luò)狀況下傳輸?shù)难舆t比較小。而且由于發(fā)送的數(shù)據(jù)包大小一樣,并且嚴(yán)格控制數(shù)據(jù)包發(fā)送的時間間隔,傳輸抖動現(xiàn)象發(fā)生的可能性很小。所以,在客戶端只按照接收到的數(shù)據(jù)包的序列號的順序判斷是否有丟失現(xiàn)象發(fā)生。如果接收的數(shù)據(jù)包是有序的,則認(rèn)為沒有丟失現(xiàn)象發(fā)生加果接收的數(shù)據(jù)包是亂序的,則作為丟失數(shù)據(jù)包處理。經(jīng)過查閱相關(guān)資料證明了這種處理方法是簡單有效的。再接收到一個完整的幀數(shù)據(jù)的所有分組后,根據(jù)序列號是否連續(xù)判斷是否發(fā)生數(shù)據(jù)包的丟失,分離數(shù)據(jù)包頭,最后恢復(fù)成一幀完整的視頻數(shù)據(jù),再根據(jù)縮格式標(biāo)記送往相應(yīng)的解碼流程。是否否是否是開始丟失這幀數(shù)據(jù)解碼提示回復(fù)一幀數(shù)據(jù)分離數(shù)據(jù)包頭寫入緩沖區(qū)讀數(shù)據(jù)包頭序列號讀出端口數(shù)據(jù)是否丟失數(shù)據(jù)接收完畢結(jié)束結(jié)束圖3-4 客戶端的發(fā)送程序流程圖第四章 多媒體教學(xué)平臺的實現(xiàn)4.1 屏幕錄制由于屏幕截取比較接近操作系統(tǒng)的操作,在windows操作系統(tǒng)下,該操作幾乎成了vc、vb等的專利,事實上,使用java jdk提供的一個robot類,來完成屏幕截取操作,更加簡單。robot類的對象,可以完成對屏幕像素的拷貝,完成屏幕圖像截取操作。該類用于產(chǎn)生與本地操作系統(tǒng)有關(guān)的底層輸入、測試應(yīng)用程序運行或自動控制應(yīng)用程序運行。robot類提供了一個方法:createscreencapture(),可以直接將全屏幕或某個屏幕區(qū)域的像素拷貝到一個bufferedimage對象中,我們只需要將該對象寫入到一個圖像文件之中,就完成了屏幕到圖像的拷貝過程。循環(huán)這個操作,將一系列圖像文件保存到硬盤上的某個文件夾中,這樣就可以完成屏幕錄制了,在本課題軟件中捕獲的是全屏幕區(qū)域。實現(xiàn)的流程圖如圖4-1所示:否是開始用robot.createscreencapture()進行圖像捕獲把捕獲后的圖像存放到圖像數(shù)據(jù)緩沖區(qū)bufferedimage圖像編碼保存成jpg格式錄制完成結(jié)束通過fileoutputstream文件輸出流往指定的文件夾寫入圖片關(guān)閉輸出流睡眠40毫秒圖4-1 屏幕錄制執(zhí)行過程流程圖/取得當(dāng)前顯示器的分辨率:screensize = toolkit.getdefaulttoolkit().getscreensize();/獲得屏幕大小rectangle = new rectangle(screensize); /可以捕獲屏幕區(qū)域/實現(xiàn)錄制過程的主要代碼如下:while (true) try 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.createjpegencoder(fos).encode(image);/圖像編碼成jpeg fos.close();/關(guān)閉輸出流 i = i + 1;/進行下一張的圖片寫入 thread.sleep(40);/每秒25幀,每40毫秒保存一張 當(dāng)在主界面上點擊“屏幕錄制”按鈕的時候,會彈出一個錄制的對話框,效果如圖4-2所示:圖4-2 屏幕錄制界面4.2 屏幕播放屏幕播放可以讓教師預(yù)先錄制好屏幕圖像,以jpg格式的圖片形式存儲,以后通過“屏幕回放”功能可以進行播放,再現(xiàn)錄制時的屏幕圖像畫面。這既可以方便老師提前備課,又解決了學(xué)生跟不上教學(xué)進度的問題,還可以讓學(xué)生在課余的時間自己去溫習(xí)上課的內(nèi)容,極大提高教學(xué)效率這個功能是建立在屏幕錄制之后的,把屏幕錄制保存下來的一系列連續(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; repaint();/重繪 thread.sleep(40);/與錄像時每秒幀數(shù)一致catch(exception e) e.printstacktrace();/打印異常的消息 system.out.println(e); 當(dāng)在主界面上點擊“屏幕播放”按鈕的時候,就會看到一個播放的對話框,效果如圖4-4所示:圖4-4 屏幕播放界面圖4.3教師機與學(xué)生機的連接市場上的很多軟件(如本校計算機教室用到的凌波多媒體教學(xué)軟件),如果教師機比學(xué)生機先啟動的話,后啟動的學(xué)生機就連接不上教師機了。本系統(tǒng)克服了這一缺點:不管學(xué)生機先啟動還是教師機先啟動,教師機與學(xué)生機都能自動連接。本系統(tǒng)采用了套接字socket機制,分別在教師端程序和學(xué)生端程序里面寫了一個連接文件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,port); catch(exception e) e.printstacktrace(); if(socket!=null)socket.close(); throw e; finally 創(chuàng)建了socket連接了之后,用方法getmessagestream()來取得消息流;當(dāng)服務(wù)器窗口關(guān)閉或者關(guān)閉socket或者無法取得消息流的時候,用方法shutdowconnection()來實現(xiàn)斷開連接。當(dāng)實現(xiàn)連接后,學(xué)生端會顯示:“教師端已經(jīng)連接”,如圖4-5右下角所示:圖4-5 學(xué)生機實現(xiàn)連接后的界面圖同時,教師端也會顯示所連上的學(xué)生機的ip,如圖4-6左上角所示:圖4-6 學(xué)生機ip已顯示的教師端界面圖由于教師端和學(xué)生端用到的是同一個socket文件來實現(xiàn)連接,所以只有上面的程序,也只能實現(xiàn)教師機和學(xué)生機的一對一的連接,根本無法實現(xiàn)一臺教師機連接多臺學(xué)生機的設(shè)想。因此,本系統(tǒng)在教師端程序中還采用了多線程機制,實現(xiàn)接收連接或者主動連接多臺學(xué)生機。/創(chuàng)建廣播通信:multicastsocket multicastsocket = new multicastsocket(6789);/加入廣播組:multicastsocket.joingroup(inetaddress);4.4屏幕廣播廣播功能將教師機屏幕上的畫面?zhèn)鬏斀o所有學(xué)生機。教師在不進行額外設(shè)置的情況下,對桌面所操作的畫面、屏幕播放的畫面進行有效截取。屏幕的截取主要使用的是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 saveasjpeg(file file) throws ioexception imageio.write(getpickedimage(),jpeg,file);/將捕獲的屏幕保存為jpeg格式的文件 public void write(outputstream out) throws ioexception imageio.write(getpickedimage(),defaultimageformater,out); /將捕獲的屏幕保存為默認(rèn)格式的文件圖像信息進行在存儲的同時也進行了快速壓縮,在確保圖片質(zhì)量的同時降低傳輸?shù)男畔⒘?。代碼如下:/為等比縮放計算輸出的圖片寬度及高度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(null) / 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);jpegimageencoder encoder = jpegcodec.createjpegencoder(out);/對輸出流進行jpeg格式編碼jpegencodeparam jep = jpegcodec.getdefaultjpegencodeparam(tag);/進行壓縮質(zhì)量的處理:jep.setquality(quality, true);encoder.encode(tag, jep);out.close();srcfile.flush();當(dāng)圖片處理完之后,采用udp傳輸協(xié)議對數(shù)據(jù)進行傳輸,有效地進行組播。本系統(tǒng)設(shè)計發(fā)送數(shù)據(jù)報文方法如下所示:public void sendmuticast(string s) try byte b=s.getbytes(); inetaddress inetaddress=inetaddress.getbyname();/組播組: datagrampacket datagrampacket =new datagrampacket(b,b.length, inetaddress,6789); /構(gòu)造一個數(shù)據(jù)報對象,端口號:6789 multicastsocket multicastsocket = new multicastsocket(); multicastsocket.send(datagrampacket); /發(fā)送該udp 包。此時:只有該組中的成員才能收到該udp包 multicastsocket.close() ; /關(guān)閉組播的socket catch(exception e) system.out.println(error in sender.javas sendmuticast+e); 其組播流程如圖4-7所示:是否開始關(guān)閉multicastsocket離開組播解碼數(shù)據(jù)報提取信息等待接收數(shù)據(jù)報發(fā)送multicastsocket加入一個組播組建立multicastsocket創(chuàng)建數(shù)據(jù)發(fā)送完畢結(jié)束圖4-7 組播程序流程圖同時,用一個專門的廣播線程,將屏幕廣播發(fā)到學(xué)生端,其實現(xiàn)的代碼如下:while(iswork) try screencapture capture = screencapture.getinstance(); fafa.setscreen(capture.getfullicon(); /發(fā)送屏幕廣播到學(xué)生端 fafa.sendimage(); fafa.sendteacher(); sleep(1000); catch(exception e) 廣播發(fā)出之后,在學(xué)生端用函數(shù)screenbroadcastclient()來接收教師端的廣播,其實現(xiàn)的代碼如下:public screenbroadcastclient() mypanel=new 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ā)布文件功能主要是用于課堂上,當(dāng)老師要給學(xué)生布置作業(yè)或者參考資料時,把相應(yīng)格式的文件發(fā)送到所有連接上教師機的學(xué)生機上。發(fā)布文件功能的實現(xiàn)基本思路如下:1.教師端和學(xué)生端建立連接;2.教師端把要發(fā)送的相應(yīng)格式的文件拷貝到教師機下面的臨時文件夾中;3.教師端往學(xué)生端發(fā)送已經(jīng)準(zhǔn)備好可以下載的命令;4.學(xué)生端接收到教師端發(fā)送過來的命令后,調(diào)用方法主動從教師端下載文件。發(fā)布文件流程圖如圖4-9,如下所示:否是是否是否教師端發(fā)送命令是否連接成功開始結(jié)束調(diào)用下載方法,主動去教師端下載udp發(fā)送是否關(guān)閉教師端等待學(xué)生端連接學(xué)生端接收到命令是否已下載完畢圖4-9 發(fā)布文件流程圖教師端主要代碼:string filename=setfile.getfile();/獲取文件名string ff=setfile.getdirectory()+filename;/獲取文件全路徑copyfilefrom(ff); /拷貝文件到本地目錄/發(fā)送通知報文 string cmd=downloadhomework;/定義用于發(fā)送給學(xué)生端的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()中,定義了一個緩存區(qū)temp,教師端把將要發(fā)布給學(xué)生的文件臨時存放到temp中,并等待學(xué)生端來下載,在等待的同時,向?qū)W生端發(fā)送通知下載報文。學(xué)生端接收到通知后,調(diào)用下載命令去下載文件,主要代碼如下:if(cmd.equals(downloadhomework)/如果教師端發(fā)布downloadhomework命令string filename=fafa.getcontent(muticastmsg); student.downloadhomework(filename);/調(diào)用downloadhomework()方法進行下來 downloadhomework()方法的重要代碼如下: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;dataoutputstream fileout=newdataoutputstream(newfileoutputstream(objname);while(nread=input.read(b)0) ) fileout.write(b); fileout.close(); stu.modemsg.addelement(老師已經(jīng)把作業(yè)+objname+發(fā)布到學(xué)生端在的文件夾!);在教師端點擊發(fā)送文件時會彈出文件選擇對話框,如圖4-10所示:圖4-10文件選擇對話框教師端給學(xué)生端發(fā)布完文件后的提示對話框如果4-11所示:圖4-11 發(fā)布完文件后的對話框當(dāng)教師端發(fā)布完文件后,已接收到文件的學(xué)生端會在文本討論區(qū)顯示:老師已經(jīng)把作業(yè)xx發(fā)布到學(xué)生端所在的文件夾。學(xué)生端所在的文件夾就是安裝本軟件所在的文件夾。顯示效果如圖4-12所示:圖4-12教師端發(fā)布完作業(yè)后學(xué)生端的消息顯示圖4.6學(xué)生端提交作業(yè)學(xué)生端跟教師端連接上之后,學(xué)生端就可以往教師端發(fā)送文件。學(xué)生端在選擇文件之后,點擊上傳,學(xué)生端對文件進行封裝后通過udp傳輸,文件會保存到教師端的文件夾下。其流程圖如圖4-13所示:否是開始保存到教師端指定的文件夾udp傳輸取得文件,進行封裝執(zhí)行提交作業(yè)命令上傳成功結(jié)束圖4-13提交作業(yè)執(zhí)行過程流程圖實現(xiàn)提交作業(yè)的主要代碼如下:file fi=new file(filepath);/ 構(gòu)建新的bufferedreader對象s=ss.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.getoutputstream();/s.getoutputstream()網(wǎng)絡(luò)連接輸出p
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025生姜生產(chǎn)購銷合同
- 2025合同管理咨詢工程
- 惠陽面試真題試卷及答案
- 村務(wù)會計考試試題及答案
- 2025太陽能熱水器安裝承包合同
- 200萬酒水購買合同范例
- 公司外聘員工合同范例
- 《2025合同的修訂、繼承與解除》
- 2025合同違約金計算案例分析
- 2025精細化工產(chǎn)品加工貿(mào)易合同
- 手機媒體概論(自考14237)復(fù)習(xí)題庫(含真題、典型題)
- 琴行老師勞動協(xié)議合同
- 2024年陜西省普通高中學(xué)業(yè)水平合格性考試歷史試題(解析版)
- 墊付運輸合同協(xié)議
- 2024年河北承德公開招聘社區(qū)工作者考試試題答案解析
- 以科技賦能醫(yī)療打造透明化的腫瘤疾病診斷平臺
- 新疆維吾爾自治區(qū)和田地區(qū)2024-2025學(xué)年高三5月考試題語文試題試卷含解析
- 環(huán)保安全知識課件
- 重慶建峰工業(yè)集團有限公司招聘筆試題庫2025
- 江蘇省蘇、錫、常、鎮(zhèn)2025年高考物理三模試卷含解析
- 2024北京朝陽城市發(fā)展集團有限公司社會化招聘專場筆試參考題庫附帶答案詳解
評論
0/150
提交評論