




已閱讀5頁,還剩6頁未讀, 繼續免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
梧 州 學 院畢 業 論 文論文題目 局域網內多媒體教學系統 的研究與實現 系 別 計算機與電子信息工程系 專 業 計算機科學與技術 班 級 學 號 學生姓名 指導教師(簽名) 完成時間 2009 年 5 月摘要隨著我國計算機科學技術的迅速發展,多媒體教學已經成為現代教育的重要組成部分,教育信息化勢在必行,網絡多媒體教學正在逐漸成為主流的教育形式。網絡多媒體教學為學習者提供了更為豐富、優質的學習資源,對提高教學質量、轉變教學觀念以及推進全民教育產生積極影響。本課題針對本校計算機教室的教學和管理需要,設計并實現了一個局域網內多媒體教學系統。在屏幕廣播功能上,采用java.util.robot類來進行全屏捕捉,捕捉后的桌面圖片以jpeg的格式進行存儲,并在存儲的過程中進行了快速壓縮,在確保圖片質量的同時降低傳輸的信息量,解決了現有的商業化網絡教學系統廣播時網速卡的問題;在屏幕錄制功能上,采用robot類來完成對屏幕的捕獲;在多媒體數據壓縮技術上,根據不同的媒體信息的特性采用了不同的壓縮方式;在提交作業功能上,通過應用層協議,用udp方式把要上交的作業高效率地傳到教師端。本系統實現了屏幕廣播、屏幕錄制、屏幕回放、教師端發布作業和學生端提交作業等功能, 并且測試結果表明,本系統取得了廣播延時小、發送文件速度快、系統運行穩定的效果。關鍵詞:局域網 多媒體教學系統 屏幕廣播 屏幕錄制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 開發背景11.2 當前多媒體教學系統技術現狀11.3 選題的意義31.4課題目標3第二章 系統開發于相關技術52.1 java語言與開發工具52.2 本系統采用的圖像壓縮算法5第三章 多媒體教學平臺的設計73.1 需求分析73.2 系統基本結構83.3協議設計的模型9第四章 多媒體教學平臺的實現114.1 屏幕錄制114.2 屏幕播放134.3教師機與學生機的連接144.4屏幕廣播164.5 教師端發布作業214.6學生端提交作業24第五章 軟件測試過程275.1對屏幕錄制、屏幕回放的測試275.2對教師機和學生機自動連接的測試275.2對屏幕廣播、教師端發布作業的測試305.4對提交作業的測試30第六章 總結與改進32參考文獻33致謝3435第一章 緒論1.1 開發背景計算機輔助教學改變了以往教學中形式單一,信息量小等等諸多弊病,多媒體輔助教學能實現個性化教育,發展被教育者的積極主動性,具有良好的視覺、聽覺效果、豐富的知識表達能力等多種有點。隨著全球信息化進程的不斷發展,教育信息化勢在必行,多媒體教學正在逐漸成為主流教育形式。多媒體教學為學習者提供了更為豐富、優質的學習資源,必將對提高教學質量,轉變教學觀念以及推進全面教育產生了積極的影響。1.2 當前多媒體教學系統技術現狀1多媒體教室隨著教育事業的不斷發展,教學改革的不斷深入,借助計算機網絡技術和多媒體技術,改變傳統的教學手段,已成為各類學校改善教學條件、提高教學質量、強調素質教育、培養順應新時期要求的高素質人才的共同需求1?,F在多媒體網絡教室將多媒體計算機同網絡技術緊密結合起來,在網絡教學的基礎之上更強調電腦輔助教學功能。既教師利用網絡多媒體教學平臺直接在計算機上進行課程教學,并能將有限的資源實現共享,達到一室多用,一室多能。多媒體網絡教室在計算機網絡的基礎上,借助影音傳輸和控制系統,實現聲音、圖像等多媒體信息在計算機網絡上的實時傳輸,使得各種文字、圖形、圖像、聲音、動畫等多媒體資料皆可用作教學素材,從而使得教學的內容和方式更加生動活潑、多姿多彩。傳統意義上的多媒體網絡教室包括計算機、網絡設備以及操作系統?,F代的多媒體網絡教室還要具備教師和學生之間能夠相互溝通、輔導和控制的多媒體網絡教室平臺軟件。有了這樣的平臺軟件,教師就能夠向學生廣播、轉播屏幕內容和聲音,并能夠進行遠程控制學生機,使教學更加方便。因此,一個完整的多媒體電子教室應包括:計算機 (pc):教師機 (服務器),學生機;網絡設備:網卡,網線,集線器或交換機等;操作系統:windows;其它設備:配件 (耳麥),應用軟件,教學軟件,機房設備 (防靜電設備,穩壓電源等)。多媒體教室的基本構成如圖1-1所示:投影儀掃描儀放像機光盤庫教師機服務器學生機學生機學生機學生機學生機 圖1-1 多媒體教室教學示意圖2多媒體教學系統 多媒體教學系統,可以將教師的屏幕畫面和聲音傳輸 (播)給所有或特定的學生,并可以監看學生的屏幕,控制學生的操作。教師與學生可以雙向交談,任何教學軟件和多媒體聲、像教學資料,均可以對學生實時播送和監看,從而達到多媒體的電腦教學的目的。多媒體教學系統,根據其設計原理和實現方式的不同可以歸為三大類:硬件實現方式、軟件實現方式、硬件結合實現方式,以前兩種為主。2(1)硬件實現方式硬件實現方式完全利用傳輸模擬信號的多媒體卡實現多媒體信號的傳輸。由于模擬信號在傳輸視頻信息上具有得天獨厚的優勢,因此在圖像的質量上,由硬件實現方式的多媒體教學系統更具有優勢。由于采用專用的視頻和音頻控制芯片、控制電纜和控制臺,多媒體教學系統的圖像清晰、傳送可靠,而且不依賴于計算機原有的硬件平臺和軟件平臺。但由于采用專門的硬件設備,成本難以下降,由于使用專用的多媒體卡和線路連接使系統維護困難,系統升級困難,使用功能比較單一。(2)軟件實現方式軟件實現方式是指運行于底層數據網環境之上的,完全用軟件來實現的多媒體教學系統,多媒體的影音信號及控制信號均通過底層數據網進行傳輸。軟件版的多媒體教學系統通過一套專門設計的軟件,利用計算機網絡,來實現原來硬件多媒體教學系統的所有功能。此方式的特點是成本低,無需添加其它附件,安裝維護簡單,軟件版本容易升級,可實現多種功能,但由于圖像傳輸需經過壓縮/解壓縮技術完成,故對計算機硬件配置及網絡速度有較高限定要求。目前軟件方式在圖像和聲音傳輸效果,尤其語音教學功能方面還有待于進一步提高與完善。(3)軟硬件結合實現方式軟硬件結合實現方式是通過在每臺計算機中加裝一塊多媒體網卡,并用專門的多媒體傳輸網線將每臺計算機串接起來,以此來實現多媒體影音信號的獨立通道傳輸。這樣就確保了影像的同步全屏傳輸,并且對學生機的硬件配置要求不高,不需要加聲卡,多媒體網卡上自帶語音功能。此方式成本太高,而且由于多媒體控制信號仍需借助底層數據網實現傳輸,每臺計算機中需安裝軟件驅動程序,整個系統安裝、維護起來有一定的難度,需具有一定的網絡知識?;诰W絡設計的軟件多媒體教學系統是多媒體網絡教室的發展方向。1.3 選題的意義本課題針對多媒體教學模式由傳統的黑板教學模式向多媒體教學模式發展的新趨勢,結合java在jbuilder平臺成熟的技術,著重在于計算機匯集視聽媒體于一身的發展,對多媒體教學系統做一些新的研究與應用。傳統的電腦教室,一般輔以投影儀或硬件網絡系統來建立多媒體教學系統,但由于高昂的成本和一些其它的原因,并不是一般教室可以配備的,而且硬件設備耗損大、維護繁瑣、升級麻煩都是令學校困擾的問題,而作為一種純軟件的解決方案的多媒體教學系統,完全避免了這些硬件問題,而且教師可以把理論教學與實踐操作相結合,直接在教師機上進行各種教學演示,并且把每一步操作過程都與實時同步傳送到學生的電腦屏幕上。各種大量的多媒體課件資料、光盤教學資源、實驗演示系統、教學方法和經驗等都可以借助多媒體教學系統軟件這種匯集語言、圖片、文字、動畫于一體的現代交互式教學模式實現了。可以在整個多媒體教室共享文字、圖像、語音、視頻資料。這樣,通過構建一種文字、語音、視頻圖像的相互交流環境,學生可以同時在自己的電腦屏幕上分享各種教學資源,不但大大較少了教師端工作負擔,提高了教學效率,而且也使教學內容及其生動活潑,學生樂于接受。目前,國內已經有一些相對成熟的教學軟件,比如凌波多媒體網絡教室軟件和博智多媒體電子教室系統,這些軟件都有很強大的功能,而且操作方便;但是,這些軟件在市場上都有著昂貴的價格,而且操作系統依賴強。介于這些軟件以上的缺點,本課題選擇用一種更新更快捷的語言java來實現。并且是根據本校的實際情況,量身定做,使它更加符合本校多媒體教學的要求,以進一步提高本校多媒體教學質量。1.4課題目標多媒體教學系統利用計算機教室現有的電腦網絡設備,實現教師機對學生機的廣播、監控、語音教學等操作,輔助學生完成電腦軟件的學習和使用。多媒體教學系統適用于各類學校以及企事業單位、培訓機構的電腦機房、計算機網絡教室及電子閱覽室中。本課題要實現以下功能:屏幕廣播:實時傳送教師或某個學生的電腦畫面到某組或全體學生的電腦屏幕上,教師可以用這個功能進行多媒體課件的教學,演示word、sql數據庫等軟件的操作,還可以讓某個學生進行示范; 屏幕錄制:錄制上課內容以便制作教學視頻; 屏幕回放:對已錄制的內容進行網絡回放;教師端發布作業:老師可以把要布置的作業放到所有已經與教師機連接上的學生機上。學生端提交作業:學生可以把相應格式的文件發送到教師的電腦中;提問、回答與討論:當老師向學生提出問題的時候,同學回答老師的問題,當同學有疑問向老師請教的時候,老師幫同學解答問題;顯示ip:顯示已和教師機連接的學生機的ip;屏幕監視:讓教師對選中ip的學生機的電腦屏幕進行實時監視,教師可以不離開座位就了解學生的學習情況,實現對整個網絡上學生機的監控與管理; 在線人數:統計已經與教師機連接上的學生機數,以便老師了解學生到課情況;警告:教師機在對學生機進行屏幕監視的時候,發現學生沒有按照老師的要求進行相關操作的時候,教師機可以使用命令對其進行警告;關機、重啟、注銷:可以把選中ip的學生機關閉、重啟和注銷操作。第二章 系統開發于相關技術2.1 java語言與開發工具2.1.1java語言的特性本課題選擇java作為開發語言,因為它具有面向對象、分布式、平臺無關、高性能、支持多線程等特性。2.1.2 jbuilder的特點本課題選擇jbuilder為開發平臺,它具有以下特性:1jbuilder支持最新的java技術,包括applets、jsp/servlets、javabean以及ejb(enterprise javabeans)的應用。 2用戶可以自動地生成基于后端數據庫表的ejb java類,jbuilder同時還簡化了ejb的自動部署功能。此外它還支持corba,相應的向導程序有助于用戶全面地管理idl(分布應用程序所必需的接口定義語言interface definition language)和控制遠程對象。3jbuilder支持各種應用服務器。jbuilder與inprise application server緊密集成,同時支持weblogic server,支持ejb 1.1和ejb 2.0,可以快速開發j2ee的電子商務應用。 4利用jbuilder可創建(沒有專有代碼和標記)純java2應用。由于jbuilder是用純java語言編寫的,其代碼不含任何專屬代碼和標記,它支持最新的java標準。 5jbuilder擁有專業化的圖形調試介面,支持遠程調試和多線程調試,調試器支持各種jdk版本,包括j2me/j2se/j2ee。 jbuilder環境開發程序方便,它是純的java 開發環境,適合企業的j2se開發。2.2 本系統采用的圖像壓縮算法本系統采用用軟件編解碼的方法對圖像數據壓縮和解壓縮。在授課中屏幕圖像變化率很低,有時屏幕電子教案可能要延用幾分鐘。這種運動圖像信號,除幀內像素間相關外,幀與幀之間的像素值也有很強的相關性,且幀變化較平穩。若能利用幀之間的數據相關性,通過特殊變換,屏蔽幀與幀之間的變化,使之表現為大量連續相同數據,只保留差異,則使用簡單高效的行程編碼就能得到較高的壓縮比。本系統對幀間編碼使用了兩種方案,一種是基于異或運算的幀間無損壓縮,一種是基于差值量化的幀間有損壓縮。1基于異或運算的無損壓縮:利用異或運算性質可知,令x為時刻獲取的屏幕圖像的像素值,y為時刻獲取的屏幕圖像的像素值,在傳送端,對兩幅圖像的像素按位進行異或運算,相同的像素異或結果為0。如果幀與幀之間的變化很少,則會出現大量連續的0。再用簡單的行程編碼對異或結果進行壓縮,可以得到較好的壓縮結果。傳輸壓縮后的數據,在接收端接收并解壓縮,與上一幀圖像像素再次進行異或運算可還原該圖像。32基于差值量化的有損壓縮:由人的視覺、生理、心理學的論證可知,肉眼對大面積圖像能分辨出的灰度等級比對小塊圖像或細節部分的灰度等級大得多。亦即,如果相鄰像素的色值差別很小,人的眼睛無法分辨,可考慮將相鄰且相近的色值量化為1個色值。3第三章 多媒體教學平臺的設計3.1 需求分析3.1.1 現有教學系統的問題目前,市場上現有的網絡多媒體教學系統成本相對較高,系統依賴性強,針對本校的情況,如果要在每一個計算機教室都安裝這樣的系統,那么超額的成本使這項工作難以進行。針對這個問題,研發一個具有自主知識產權的跨平臺的多媒體教學系統是一項勢在必行的工作。3.1.2 本系統功能模塊分析本系統采用c/s(client/server)模式。學生機作為client(客戶端),而教師機作為server(服務端)。教師機為學生機提供服務,并對學生機進行管理。本系統需要有教師機和學生機這兩個部分,教師端功能:屏幕廣播,教師端發布作業,屏幕錄制,屏幕回放,屏幕監視,提問問題、問題答疑,顯示學生機的ip,在線人數統計,網上聊天,發出警告,關機、重啟、注銷;學生端功能:學生端提交作業,接受廣播,接受監視,接受警告,接受關機、重啟和注銷,向老師請教問題等。功能模塊如圖3-1:屏幕操作顯示學生ip顯示在線人數屏幕回放屏幕廣播屏幕錄制屏幕監視遠程控制發出警告遠程關機聯機討論問題聯機互動提問問題遠程注銷遠程重啟回答問題教師端教師端發布作業屏幕操作學生端聯機互動接受警告接受遠程控制學生端提交作業接受屏幕廣播接受屏幕監視接受遠程關機接受遠程重啟接受遠程注銷聯機討論問題向老師請教問題回答老師提問的問題圖3-1 功能模塊圖3.2 系統基本結構本系統的設計主要是針對局域網內一臺教師機和多臺學生機的模型,教師機充當服務器的角色,學生機充當客戶機的角色,其系統的基本結構示意圖如圖3-2所示:圖3-2 系統結構示意圖3.3協議設計的模型基于udp多媒體轉輸協議設計的模型系統,與rtp/rtcp協議相比,系統設計的時候簡化了排序處理等流程,同樣采用了客戶端/服務器模型。下面分別給出服務器的發送程序流程圖和客戶機的接收流程圖,如圖3-3和圖3-4所示。否是是是否否開始獲取一幀視頻數據發送數據包頭添加數據包頭生成數據包頭視頻數據等分為若干數據包獲取成功發送完畢結束結束圖3-3 服務器的發送程序流程圖發送端首先獲取經過壓縮的一幀視頻數據,遞交給udp分組處理。然后將一幀視頻數據按照要求分解為適合網絡傳輸的一系列小的數據包,并加上此協議的分組包頭,其中包括數據包的順序號、時間戳,視頻數據的壓縮格式等參數,然后完成發送。發送端根據接收端反饋的延遲估計和接收質量報告調整發送速度。客戶端從端口獲取數據包后寫入接收緩沖區。根據數據包頭信息確認數據包是否丟失,做出相應處理。由于在發送端控制每個發送的數據包小于1024字節,所以在止常的網絡狀況下傳輸的延遲比較小。而且由于發送的數據包大小一樣,并且嚴格控制數據包發送的時間間隔,傳輸抖動現象發生的可能性很小。所以,在客戶端只按照接收到的數據包的序列號的順序判斷是否有丟失現象發生。如果接收的數據包是有序的,則認為沒有丟失現象發生加果接收的數據包是亂序的,則作為丟失數據包處理。經過查閱相關資料證明了這種處理方法是簡單有效的。再接收到一個完整的幀數據的所有分組后,根據序列號是否連續判斷是否發生數據包的丟失,分離數據包頭,最后恢復成一幀完整的視頻數據,再根據縮格式標記送往相應的解碼流程。是否否是否是開始丟失這幀數據解碼提示回復一幀數據分離數據包頭寫入緩沖區讀數據包頭序列號讀出端口數據是否丟失數據接收完畢結束結束圖3-4 客戶端的發送程序流程圖第四章 多媒體教學平臺的實現4.1 屏幕錄制由于屏幕截取比較接近操作系統的操作,在windows操作系統下,該操作幾乎成了vc、vb等的專利,事實上,使用java jdk提供的一個robot類,來完成屏幕截取操作,更加簡單。robot類的對象,可以完成對屏幕像素的拷貝,完成屏幕圖像截取操作。該類用于產生與本地操作系統有關的底層輸入、測試應用程序運行或自動控制應用程序運行。robot類提供了一個方法:createscreencapture(),可以直接將全屏幕或某個屏幕區域的像素拷貝到一個bufferedimage對象中,我們只需要將該對象寫入到一個圖像文件之中,就完成了屏幕到圖像的拷貝過程。循環這個操作,將一系列圖像文件保存到硬盤上的某個文件夾中,這樣就可以完成屏幕錄制了,在本課題軟件中捕獲的是全屏幕區域。實現的流程圖如圖4-1所示:否是開始用robot.createscreencapture()進行圖像捕獲把捕獲后的圖像存放到圖像數據緩沖區bufferedimage圖像編碼保存成jpg格式錄制完成結束通過fileoutputstream文件輸出流往指定的文件夾寫入圖片關閉輸出流睡眠40毫秒圖4-1 屏幕錄制執行過程流程圖/取得當前顯示器的分辨率:screensize = toolkit.getdefaulttoolkit().getscreensize();/獲得屏幕大小rectangle = new rectangle(screensize); /可以捕獲屏幕區域/實現錄制過程的主要代碼如下:while (true) try bufferedimage image = robot.createscreencapture(rectangle); /把捕獲到的指定屏幕矩形區域圖像存放到可訪問的圖像數據緩沖區image,createscreencapture捕獲指定屏幕矩形區域的圖像 fos = new fileoutputstream(c:records + i + .jpg);/創建一個文件輸出流對象,往指定的文件里面寫圖片 /fileoutputstream創建一個向指定 file 對象表示的文件中寫入數據的文件輸出流 jpegcodec.createjpegencoder(fos).encode(image);/圖像編碼成jpeg fos.close();/關閉輸出流 i = i + 1;/進行下一張的圖片寫入 thread.sleep(40);/每秒25幀,每40毫秒保存一張 當在主界面上點擊“屏幕錄制”按鈕的時候,會彈出一個錄制的對話框,效果如圖4-2所示:圖4-2 屏幕錄制界面4.2 屏幕播放屏幕播放可以讓教師預先錄制好屏幕圖像,以jpg格式的圖片形式存儲,以后通過“屏幕回放”功能可以進行播放,再現錄制時的屏幕圖像畫面。這既可以方便老師提前備課,又解決了學生跟不上教學進度的問題,還可以讓學生在課余的時間自己去溫習上課的內容,極大提高教學效率這個功能是建立在屏幕錄制之后的,把屏幕錄制保存下來的一系列連續的圖片調出來并與屏幕錄制相同的速度顯示在電腦屏幕上,這樣就可以看到之前錄制的屏幕了。其實現的流程圖如圖4-3如下:否是開始取得要播放圖片的文件夾從序號0開始取一張的圖片把圖片顯示到屏幕上播放完成結束按錄制時的先后順序從0開始編號圖片睡眠40毫秒取下一張圖片圖4-3 屏幕播放執行過程流程圖實現的主要代碼如下:public void run()int i = 0;/定義圖片從序號0開始 while(true) try cimage = loadimage(i + .jpg);/取得一張圖片 i = i + 1; repaint();/重繪 thread.sleep(40);/與錄像時每秒幀數一致catch(exception e) e.printstacktrace();/打印異常的消息 system.out.println(e); 當在主界面上點擊“屏幕播放”按鈕的時候,就會看到一個播放的對話框,效果如圖4-4所示:圖4-4 屏幕播放界面圖4.3教師機與學生機的連接市場上的很多軟件(如本校計算機教室用到的凌波多媒體教學軟件),如果教師機比學生機先啟動的話,后啟動的學生機就連接不上教師機了。本系統克服了這一缺點:不管學生機先啟動還是教師機先啟動,教師機與學生機都能自動連接。本系統采用了套接字socket機制,分別在教師端程序和學生端程序里面寫了一個連接文件clientsocket.java,這個就是克服以上缺點的重點方法。而且程序里面用到一個端口和ip的構造函數,并沒有對方機子的端口號和ip綁定,所以在運行軟件的時候,不需要進行物理的設計端口號和ip。其實現的代碼如下: public clientsocket(string ip, int port) /構造函數,ip地址和端口號 this.ip=ip; this.port=port; /創建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 創建了socket連接了之后,用方法getmessagestream()來取得消息流;當服務器窗口關閉或者關閉socket或者無法取得消息流的時候,用方法shutdowconnection()來實現斷開連接。當實現連接后,學生端會顯示:“教師端已經連接”,如圖4-5右下角所示:圖4-5 學生機實現連接后的界面圖同時,教師端也會顯示所連上的學生機的ip,如圖4-6左上角所示:圖4-6 學生機ip已顯示的教師端界面圖由于教師端和學生端用到的是同一個socket文件來實現連接,所以只有上面的程序,也只能實現教師機和學生機的一對一的連接,根本無法實現一臺教師機連接多臺學生機的設想。因此,本系統在教師端程序中還采用了多線程機制,實現接收連接或者主動連接多臺學生機。/創建廣播通信:multicastsocket multicastsocket = new multicastsocket(6789);/加入廣播組:multicastsocket.joingroup(inetaddress);4.4屏幕廣播廣播功能將教師機屏幕上的畫面傳輸給所有學生機。教師在不進行額外設置的情況下,對桌面所操作的畫面、屏幕播放的畫面進行有效截取。屏幕的截取主要使用的是java.util.robot類來捕獲屏幕,可以實現對屏幕進行一個全屏捕捉,代碼如下: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); /將捕獲的屏幕保存為默認格式的文件圖像信息進行在存儲的同時也進行了快速壓縮,在確保圖片質量的同時降低傳輸的信息量。代碼如下:/為等比縮放計算輸出的圖片寬度及高度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); /創建緩沖區圖像bufferedimage的一個對象tag.getgraphics().drawimage(srcfile, 0, 0, new_w, new_h, null); /繪制縮小后的圖newimage=new imageicon(tag);/設計壓縮之后臨時存放的位置:fileoutputstream out = new fileoutputstream(screen.jpg);jpegimageencoder encoder = jpegcodec.createjpegencoder(out);/對輸出流進行jpeg格式編碼jpegencodeparam jep = jpegcodec.getdefaultjpegencodeparam(tag);/進行壓縮質量的處理:jep.setquality(quality, true);encoder.encode(tag, jep);out.close();srcfile.flush();當圖片處理完之后,采用udp傳輸協議對數據進行傳輸,有效地進行組播。本系統設計發送數據報文方法如下所示:public void sendmuticast(string s) try byte b=s.getbytes(); inetaddress inetaddress=inetaddress.getbyname();/組播組: datagrampacket datagrampacket =new datagrampacket(b,b.length, inetaddress,6789); /構造一個數據報對象,端口號:6789 multicastsocket multicastsocket = new multicastsocket(); multicastsocket.send(datagrampacket); /發送該udp 包。此時:只有該組中的成員才能收到該udp包 multicastsocket.close() ; /關閉組播的socket catch(exception e) system.out.println(error in sender.javas sendmuticast+e); 其組播流程如圖4-7所示:是否開始關閉multicastsocket離開組播解碼數據報提取信息等待接收數據報發送multicastsocket加入一個組播組建立multicastsocket創建數據發送完畢結束圖4-7 組播程序流程圖同時,用一個專門的廣播線程,將屏幕廣播發到學生端,其實現的代碼如下:while(iswork) try screencapture capture = screencapture.getinstance(); fafa.setscreen(capture.getfullicon(); /發送屏幕廣播到學生端 fafa.sendimage(); fafa.sendteacher(); sleep(1000); catch(exception e) 廣播發出之后,在學生端用函數screenbroadcastclient()來接收教師端的廣播,其實現的代碼如下:public screenbroadcastclient() mypanel=new mypanel(); this.getcontentpane().add(mypanel); this.clock.start(); this.setdefaultcloseoperation(this.exit_on_close); 屏幕廣播實現的效果圖如圖4-8所示:圖4-8 屏幕廣播效果圖4.5 教師端發布作業發布文件功能主要是用于課堂上,當老師要給學生布置作業或者參考資料時,把相應格式的文件發送到所有連接上教師機的學生機上。發布文件功能的實現基本思路如下:1.教師端和學生端建立連接;2.教師端把要發送的相應格式的文件拷貝到教師機下面的臨時文件夾中;3.教師端往學生端發送已經準備好可以下載的命令;4.學生端接收到教師端發送過來的命令后,調用方法主動從教師端下載文件。發布文件流程圖如圖4-9,如下所示:否是是否是否教師端發送命令是否連接成功開始結束調用下載方法,主動去教師端下載udp發送是否關閉教師端等待學生端連接學生端接收到命令是否已下載完畢圖4-9 發布文件流程圖教師端主要代碼:string filename=setfile.getfile();/獲取文件名string ff=setfile.getdirectory()+filename;/獲取文件全路徑copyfilefrom(ff); /拷貝文件到本地目錄/發送通知報文 string cmd=downloadhomework;/定義用于發送給學生端的downloadhomework命令 cmdparser ss=new cmdparser();/聲明了一個封裝命令方法ss對象 string msg=ss.formatcmd(cmd,filename,getlocalip(),student); /定義msg信息 sendmsg kl=new sendmsg();/實例化sendmsg kl.sendmuticast(msg); /發送信息教師端的主代碼中調用了copyfilefrom()方法,在copyfilefrom()中,定義了一個緩存區temp,教師端把將要發布給學生的文件臨時存放到temp中,并等待學生端來下載,在等待的同時,向學生端發送通知下載報文。學生端接收到通知后,調用下載命令去下載文件,主要代碼如下:if(cmd.equals(downloadhomework)/如果教師端發布downloadhomework命令string filename=fafa.getcontent(muticastmsg); student.downloadhomework(filename);/調用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(老師已經把作業+objname+發布到學生端在的文件夾!);在教師端點擊發送文件時會彈出文件選擇對話框,如圖4-10所示:圖4-10文件選擇對話框教師端給學生端發布完文件后的提示對話框如果4-11所示:圖4-11 發布完文件后的對話框當教師端發布完文件后,已接收到文件的學生端會在文本討論區顯示:老師已經把作業xx發布到學生端所在的文件夾。學生端所在的文件夾就是安裝本軟件所在的文件夾。顯示效果如圖4-12所示:圖4-12教師端發布完作業后學生端的消息顯示圖4.6學生端提交作業學生端跟教師端連接上之后,學生端就可以往教師端發送文件。學生端在選擇文件之后,點擊上傳,學生端對文件進行封裝后通過udp傳輸,文件會保存到教師端的文件夾下。其流程圖如圖4-13所示:否是開始保存到教師端指定的文件夾udp傳輸取得文件,進行封裝執行提交作業命令上傳成功結束圖4-13提交作業執行過程流程圖實現提交作業的主要代碼如下:file fi=new file(filepath);/ 構建新的bufferedreader對象s=ss.accept();/監聽是否與教師機連接datainputstreamdis=newdatainputstream(newbufferedinputstream(s.getinputstream();/s.getinputstream()獲得網絡連接輸入,同時返回一個iutputstream對象實例dis.readbyte();datainputstream fis=new datainputstream(new bufferedinputstream(new fileinputstream(filepath);dataoutputstreamps=newdataoutputstream(s.getoutputstream();/s.getoutputstream()網絡連接輸出p
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 審計結果與企業決策的關系試題及答案
- 項目成功關鍵因素分析試題及答案
- 《認識圖形》教學設計-2024-2025學年一年級上冊數學北師大版
- 2025年注冊會計師考試大型企業的財務預算管理試題及答案
- 項目成果匯報的技巧與方法考題及答案
- 2024八年級數學下冊 第19章 平面直角坐標系19.3坐標與圖形的位置教學設計(新版)冀教版
- 資本市場動態發展的試題及答案
- 器樂教學課題申報書
- 學風建設 課題申報書
- 法學課題申報書 查詢
- 北京市朝陽區2025屆高三下學期一模試題 數學 含答案
- 運輸公司安全管理制度
- 2025屆吉林省長春市高三下學期4月三模政治試題(原卷版+解析版)
- 2025屆江蘇省揚州市中考一模語文試題(含答案)
- 2025年河北省唐山市中考一模道德與法治試題(含答案)
- 2025年一級注冊計量師考試題庫大全及答案
- 放療皮膚反應分級護理
- 2025年03月內蒙古鄂爾多斯市東勝區事業單位引進高層次人才和緊缺專業人才50人筆試歷年典型考題(歷年真題考點)解題思路附帶答案詳解
- 衛生院全國預防接種日宣傳活動總結(8篇)
- 小學消防知識教育
- 工程造價咨詢服務投標方案(專家團隊版-)
評論
0/150
提交評論