張年英
(武漢船舶職業技術學院,湖北武漢 430050)
新世紀的高職教育的發展方向是由單一的職業教育轉變為綜合性多層次的職業教育,這就需運用先進的教學手段,將綜合性的知識教授給學生。所以,現在的高職院校,如果僅僅是使用原始的課堂講授+實踐操作的授課方式,想要培養出高素質的綜合型技能人才是行不通的,只有運用先進的教學模式,才能培養出綜合型的高素質人才,其中,運用多媒體技術架設多媒體電子教師進行教學就是目前比較先進的教學模式之一。
在多媒體的技術上發展起來的多媒體電子教室將傳統的課堂教授與實際操作結合起來,讓學生在上課時既能得到教師的講授又能通過多媒體更好的融入課堂,充分體現以教師為引導,學生為主體的新型教學模式。當前多媒體電子教室主要的功能有廣播教學、遠程監控、文件傳輸、電子白板等。其中,廣播教學功能是多媒體電子教室的核心功能,而屏幕傳輸功能又是廣播教學的關鍵之一,本文采用了C/S(客戶端/服務器)結構,以VC6.0為平臺實現了多媒體電子教室系統的屏幕傳輸功能。
該功能是整個多媒體電子教室的主要功能之一。通過該功能進行視頻傳輸,將在教師機上正在進行的教學演示,并通過網絡對學生機進行廣播。在授課時,教師使用同步視頻功能,將教師機的畫面通過網絡傳遞到每臺學生機,從而使每一臺學生機顯示話畫面與教師機一樣。教師可以通過各種軟件進行教學,例如:對某種應用軟件進行實際操作,讓學生對操作的過程有一個詳細的了解。這樣,就能避免傳統教學只能在同一時間對少數學生進行演示,其他學生無所事事的情形,同時通過廣播教學,還可以極大的避免教師的重復勞動,使教師有更多的精力投入到教學當中。
屏幕傳輸就是通過網絡,將一臺計算機(服務器端)上面正在顯示的畫面傳輸到另一臺或者若干臺計算機(客戶端)上,并保證客戶的端屏幕始終與服務器端的屏幕保持一致,即便在傳輸過程中發生幀丟失的狀況,也不會產生太大的影響。
在實現該功能是,大數據量的傳輸是首先需要考慮的問題,以當前最典型的情況來考慮:屏幕分辨率為1366*768,色彩質量為32位。這樣一幅畫面的數據量為:1366*768*32=3M,如此大的數據量,只有通過壓縮才能進行網絡傳輸。所以在本文設計的系統中,將服務器端與客戶端的通信分為了五個部分:屏幕抓取、壓縮屏幕、網絡傳輸、解壓數據、繪制屏幕。
本文中設計的系統是通過獲取顯示設備中顯示的位圖來實現屏幕抓取的。首先,獲取將要實施抓取的屏幕的尺寸,根據該尺寸創建一個位圖,然后獲取顯示設備并創建一個與該顯示設備兼容的緩存設備memory Device Context(memDC),將之前創建好的位圖放入該緩存,再用API將當前顯示設備的內容拷到內存,如此,屏幕上的內容就被抓取到了位圖中,最后,對當前的顯示設備進行釋放。具體的實現代碼如下:

本設計的系統系統采用了VC6.0的壓縮函數來進行屏幕壓縮。在完成了屏幕抓取后,屏幕顯示的內容已經抓取到了創建的位圖中,需要對它進行壓縮操作。首先,將數據從位圖中取出,然后,對hMemBmp中存放的數據進行壓縮,具體代碼如下:


針對視頻傳輸的數據量比較大的特點,在進行屏幕數據傳輸時,使用的是UDP(數據報)的方式,該方式可以有效的降低CPU的消耗,不論有多少個客戶端,服務器只需要發送一次就足夠了,即使在傳輸過程中發送數據報少量丟失的狀況,也不會對客戶端造成太大的影響,在客戶端只會以非常快的速度閃過一些亂屏。經過壓縮后,每一幀的數據任然有幾十K或者幾百K的大小,如果僅僅使用一個數據包來發送,在現有的技術情況下是不可能的,所以需要將每一幀數據拆分成數個小數據包,通過網絡傳輸至客戶端,再在客戶端將這些小的數據包拼接成原來的數據幀。因此拆分后得到的數據包必須提供必要的信息,以此表示一共傳輸多少個數據包,當前的數據包的序列,各數據包的排列順序,數據包的長度等信息,這樣在客戶端才可以將這些數據包還原成原來的數據幀。為此,本文數據包設計了以下的數據結構:
每一幀的數據經過壓縮之后仍然有幾十到幾百K字節不等,想要用一個數據包就發送出去是不可能的,因此必須將它拆成若干個小的數據包,廣播到網絡上,學生機接收到之后,在將它們拼成一個完整數據幀。因此在數據包的結構中必須能表示出共有多少包,當前是第幾包,有效數據的長度是多少等信息。這樣在接收端才能將它們按照順序拼接起來。為此,我們采用以下的數據結構:

客戶端將接收到的數據包拼接成一個完整的數據幀之后,將對該數據包進行解壓操作,具體代碼如下:


通過解壓縮后,數據就被存放在了內存指針ip當中,與壓縮的過程相比較,解壓縮除了方向相反以外,其余的過程都非常相似。
當客戶段獲得解壓的數據后,需要將這些數據轉換為畫面的形式在客戶端的屏幕上顯示。為此,客戶端首先需要創建一幅位圖,然后將解壓后得數據填充進這幅位圖,最后再將該位圖復制到客戶端的顯示設備中,這次,繪制屏幕的工作就完成了,具體代碼如下:


屏幕傳輸功能的實現,使得多媒體電子教學的關鍵問題得到解決,在多媒體電子教室中進行系統測試,取得了比較好的效果,也為作者下一步的多媒體電子教室研究提供了支持。但是,因為對圖像傳輸效果產生影響的因素有很多方面,如何在現有的硬件條件下提高數據壓縮的比率,減小傳輸的數據量,降低圖像失真度,是下一步需要探索研究的問題。
1 何斌,馬天予,王運堅等.Visual C++ 數字圖像處理[M].北京:人民郵電出版社,2001
2 鄭阿奇,丁有和,鄭進等.Visual C實用教程(第2版)[M].北京:電子工業出版社,2003
3 李增智,陳妍.計算機網絡原理(第2版)[M].西安:西安交通大學出版社,2000
4 傅愛玲.基于校園網的多媒體電子教室的開發與實現[D].天津大學,2005
5 吳洪才,殷人昆.屏幕捕獲技術在多媒體教學中的實現探討[J].計算機工程,2003(7)
6 魏娟麗 電子教室中廣播教學功能的設計與實現[J].電子設計工程,2011(1)