亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于JAVA技術(shù)的實時移動學(xué)習(xí)系統(tǒng)的研究與實現(xiàn)

        2010-01-01 00:00:00丁慧東周學(xué)柳吳富章王艷波
        現(xiàn)代教育技術(shù) 2010年4期

        【摘要】移動學(xué)習(xí)在最近幾年得到了較大的發(fā)展。隨著3G網(wǎng)絡(luò)的迅速普及,無線網(wǎng)絡(luò)的帶寬已經(jīng)可以滿足人們對移動流媒體的要求。文章論述了利用JAVA設(shè)計開發(fā)實時性較強(qiáng)的移動學(xué)習(xí)系統(tǒng)的方法和過程,闡述了其中的關(guān)鍵技術(shù),并對系統(tǒng)進(jìn)行了仿真。最后對本系統(tǒng)的設(shè)計和實現(xiàn)做出了總結(jié)。

        【關(guān)鍵詞】JAVA;移動學(xué)習(xí);實時流媒體;網(wǎng)絡(luò)連接

        【中圖分類號】G40-057 【文獻(xiàn)標(biāo)識碼】B 【論文編號】1009—8097(2010)04—0115—04

        引言

        隨著計算機(jī)技術(shù)、無線網(wǎng)絡(luò)通信技術(shù)和移動計算技術(shù)的快速發(fā)展,移動學(xué)習(xí)作為一種新型的學(xué)習(xí)模式引起了人們的廣泛關(guān)注,并成為教育技術(shù)及相關(guān)領(lǐng)域研究的新熱點(diǎn)。移動學(xué)習(xí)(Mobile Learning,簡稱M-Learning),是利用移動通信設(shè)備借助現(xiàn)有的無線通信網(wǎng)絡(luò)技術(shù)來獲取知識進(jìn)行學(xué)習(xí)的一種現(xiàn)代學(xué)習(xí)方式[1]。這里,移動通信設(shè)備包括手機(jī)、PDA(個人數(shù)字助理)、筆記本電腦等具有無線通信功能的便攜式設(shè)備。日益成熟的3G網(wǎng)絡(luò),其最高業(yè)務(wù)帶寬可達(dá)2Mbps。這種情況下,在移動學(xué)習(xí)中加入流媒體,可以讓移動學(xué)習(xí)更具發(fā)展?jié)摿Α?/p>

        一 國內(nèi)外移動學(xué)習(xí)現(xiàn)狀

        移動教學(xué)與學(xué)習(xí)作為一種新的教學(xué)與學(xué)習(xí)模式,自2001年開始在世界范圍內(nèi)已經(jīng)備受關(guān)注,世界各地在此領(lǐng)域都做出了有益的探索,尤其以歐美一些國家為先,我國對移動學(xué)習(xí)的研究時間并不長也不成熟,但隨著近幾年網(wǎng)絡(luò)以及通信技術(shù)的迅猛發(fā)展它已取得了突飛猛進(jìn)的成果,尤其伴隨著3G技術(shù)的應(yīng)用以及目前手機(jī)功能的強(qiáng)大,越來越多的手機(jī)廠商都開始朝智能手機(jī)發(fā)展,這些硬件上的發(fā)展都為移動學(xué)習(xí)提供了有利的條件。

        目前國內(nèi)外移動學(xué)習(xí)主要有兩種模式:一種是基于MMS短信服務(wù)進(jìn)行的移動學(xué)習(xí)。這種方式借助短信服務(wù),學(xué)生與老師之間互相交流討論,學(xué)習(xí)者可以隨意自主地發(fā)送信息,進(jìn)行學(xué)習(xí);另一種較為流行的移動學(xué)習(xí)模式是基于WAP的網(wǎng)站服務(wù)方式。這種模式下,學(xué)生可以通過手機(jī)內(nèi)嵌的瀏覽器,訪問下載服務(wù)器站點(diǎn)上的教學(xué)資源,進(jìn)行學(xué)習(xí)。

        “利用移動設(shè)備自主學(xué)習(xí)這種方式極大的調(diào)動了學(xué)習(xí)者的學(xué)習(xí)興趣,使青少年可以在一段時間內(nèi)持續(xù)學(xué)習(xí)”[2]。面對目前傳統(tǒng)學(xué)習(xí)的一些弊端,移動學(xué)習(xí)的出現(xiàn)可以讓學(xué)生的學(xué)習(xí)做到隨時隨地,讓學(xué)生學(xué)習(xí)的興趣高漲。但目前兩種較常用的移動學(xué)習(xí)模式實時性和靈活性較差。針對這些特點(diǎn),研究開發(fā)實時性高,靈活性好的學(xué)習(xí)系統(tǒng)就顯得很有必要了。

        二 系統(tǒng)設(shè)計

        1 設(shè)計思想

        傳統(tǒng)的基于短信及WAP網(wǎng)頁形式的移動學(xué)習(xí)能達(dá)到一定的學(xué)習(xí)效果,但是短信學(xué)習(xí)的內(nèi)容形式受限,利用文字交流學(xué)習(xí)居多;WAP網(wǎng)頁形式雖然可以瀏覽除文字以外的一些多媒體信息,如圖片等,但是基于資源下載的學(xué)習(xí)方式,做不到學(xué)生與教師之間的實時交流,互動性也較差。

        基于上面兩種移動學(xué)習(xí)方式的不足,開發(fā)一個實時、靈活的移動學(xué)習(xí)系統(tǒng)的想法便應(yīng)運(yùn)而生。隨著手機(jī)用戶的增多和3G網(wǎng)絡(luò)的開通與普及,利用手機(jī)上網(wǎng)實現(xiàn)多媒體的傳輸基本已不再受限。本系統(tǒng)旨在利用J2ME及J2SE實現(xiàn)手機(jī)和PC機(jī)之間的通信,采用實時語音、課件、電子白板等方式進(jìn)行移動教學(xué)。本系統(tǒng)實時教學(xué)實現(xiàn)模式為:系統(tǒng)分服務(wù)器端和客戶端,教師在服務(wù)器端播放事先做好的圖片課件,學(xué)生能在客戶端接收到服務(wù)器端的課件內(nèi)容。同時,服務(wù)器端還具有電子白板功能,能夠把鼠標(biāo)作為電子筆使用,用于教師對授課內(nèi)容進(jìn)行深入分析和講解;服務(wù)器端還實時采集教師的語音信息,利用網(wǎng)絡(luò)傳輸?shù)绞謾C(jī)客戶端,讓移動教學(xué)也能做到傳統(tǒng)教學(xué)模式下的聽課效果;學(xué)生還可以利用手機(jī)編輯信息發(fā)送到服務(wù)器,與教師進(jìn)行實時交互。因此,服務(wù)器端要完成課件、語音、文本信息的實時傳輸,同時,對客戶的登錄請求給出響應(yīng)。系統(tǒng)總體結(jié)構(gòu)如圖1所示。系統(tǒng)開發(fā)包括服務(wù)器端的開發(fā)和手機(jī)客戶端的開發(fā)。系統(tǒng)主要任務(wù)是要實現(xiàn)手機(jī)與計算機(jī)之間的通信。JAVA語言在網(wǎng)絡(luò)通信方面提供了強(qiáng)大的功能以及豐富的類庫。因此,系統(tǒng)采用J2SE 及J2ME分別實現(xiàn)服務(wù)器和手機(jī)端的程序。

        2 模塊設(shè)計

        (1) 網(wǎng)絡(luò)連接

        系統(tǒng)要實現(xiàn)如前所述的教學(xué)模式,即要完成課件、電子白板信息、語音、文字的實時傳輸,首先要與客戶端建立網(wǎng)絡(luò)連接。因為要使教學(xué)達(dá)到實時效果,就要保證課件、電子白板及語音信息的實時傳輸。在JAVA中,可通過HTTP、TCP等方式建立網(wǎng)絡(luò)連接,而TCP連接下的實時性最好,實現(xiàn)也很方便。J2SE中通過ServerSocket類實現(xiàn)了TCP連接的服務(wù)器套接字,通過其accept()方法,可以監(jiān)聽到發(fā)出連接請求的用戶,獲取與用戶TCP連接的套接字;另一方面,在J2ME中可以通過Connector類的open方法創(chuàng)建一個SocketConnection,即創(chuàng)建一個TCP連接的套接字。利用套接字獲取InputStream流和OutputStream流后,雙方便可以進(jìn)行通信。因為有多個用戶,在服務(wù)器端要利用向量保存用戶的輸入輸出流。

        (2) 教學(xué)內(nèi)容傳輸與接收

        要實現(xiàn)多種教學(xué)資源的實時傳輸,可以為不同的資源傳輸實現(xiàn)獨(dú)立的服務(wù)器線程,當(dāng)服務(wù)器要發(fā)送相應(yīng)的教學(xué)信息時,就調(diào)用相應(yīng)的線程進(jìn)行傳輸。在系統(tǒng)中,drawpanel類為主要的服務(wù)器類,此類實現(xiàn)服務(wù)器的基本操作、電子白板的繪制以及電子白板服務(wù)器線程。同時,sendimage類、sendstring類來實現(xiàn)課件、文字信息的傳輸處理,因為要共享用戶信息(輸入輸出流等信息),這兩個設(shè)計成內(nèi)部類。另一方面,在客戶端,相應(yīng)的有三個線程來接收這些相應(yīng)的信息:drawline類作為主要的客戶類,實現(xiàn)電子白板的繪制及接收電子白板的信息,另外receiveimage類和receivestring類實現(xiàn)課件及文字的接收。

        語音方面,因J2ME中對實時流媒體支持不夠,不能直接用RTP、RTCP來直接傳送語音。這里,利用文獻(xiàn)[3]提供的思路,在服務(wù)器端利用RecordThread類及AudioRec類捕獲并錄制教師的語音,并且將錄制的語音放入HTTP服務(wù)器中。在客戶方面,利用HttpConnection類與服務(wù)器建立HTTP連接后,下載里面的音頻文件,再利用javax.microedition.media軟件包提供的Player類對下載的音頻文件進(jìn)行播放,達(dá)到實時語音的目的。

        (3) 用戶管理

        系統(tǒng)要實現(xiàn)移動學(xué)習(xí),首先要做的是用戶的管理。用戶借助于合法的用戶名及密碼進(jìn)行登錄請求,在服務(wù)器端開啟一個后臺線程,監(jiān)聽用戶的登錄請求,同時通過查詢后臺數(shù)據(jù)庫判斷是否為合法用戶,若為合法用戶,則將其添加到服務(wù)器中的客戶列表中。

        三 關(guān)鍵技術(shù)

        在實現(xiàn)整個系統(tǒng)的過程中,關(guān)鍵的地方就是要解決實時圖像和聲音等多媒體信息的傳輸。在多媒體方面,JAVA為處理多媒體提供了一個專門的編程工具JMF(JAVA Media Frame),利用JMF可以實現(xiàn)對多媒體數(shù)據(jù)的捕獲、處理、傳輸。利用JMF中的軟件包還可以實現(xiàn)RTP、RTCP等協(xié)議,對實時流媒體提供了支持。但是目前市場上絕大多數(shù)支持Java的手機(jī)中并未提供JMF的軟件包。因此,必須另選其它方法來實現(xiàn)流媒體的實時傳輸。

        1 實時圖像處理與傳輸

        圖像數(shù)據(jù)包括課件圖片數(shù)據(jù)和電子白板數(shù)據(jù)。課件圖片的傳輸主要由課件圖片服務(wù)器線程完成??紤]到目前市場上各種手機(jī)的屏幕大小現(xiàn)在并未統(tǒng)一,用戶在登錄時,需將用戶屏幕的大小保存到服務(wù)器端。在J2ME中,利用Form類或者Canvas類的getWidth()、getHeight()方法可以獲取當(dāng)前屏幕的大小。服務(wù)器根據(jù)用戶屏幕的大小借助于JAVA豐富的圖像處理類(BufferedImage、JPEGImageEncoder等)將圖像經(jīng)縮小、編碼等處理過后再以像素數(shù)組的方式發(fā)送給各個客戶。在客戶端,利用Image類的createImage()方法,把接收到的像素數(shù)組數(shù)據(jù)為參數(shù),即可構(gòu)造出要顯示的圖像。借用此思路既可以減小網(wǎng)絡(luò)的傳輸量,還可以減輕客戶端的負(fù)擔(dān)。

        為了節(jié)約帶寬資源,服務(wù)器應(yīng)盡量減少直接發(fā)送圖片數(shù)據(jù)的次數(shù)??紤]到電子白板信息只是一些畫筆位置、大小、顏色等信息,且發(fā)送較為頻繁,為此,電子白板信息的發(fā)送應(yīng)與課件圖片的發(fā)送分開,而另開啟一個電子白板服務(wù)器線程與客戶進(jìn)行信息傳輸??蓪㈦娮影装逍畔⒎庋b為:

        class mypoint

        {

        publicintx;//x坐標(biāo)

        Publicinty;//y坐標(biāo)

        publicColorpenclr; //畫筆顏色

        publicColorfontclr;//字體顏色

        publicintpen; //畫筆粗細(xì)

        publicintisdraw;//是否在畫的標(biāo)志

        public int idnum;//客戶端的ID

        public int drawMode;//當(dāng)前畫筆模式

        public int multiple;/*到客戶屏幕應(yīng)該縮小的倍數(shù)*/

        }

        這樣,只需通過輸入輸出流的readInt()、writeInt()方法,就可以將這些少量的信息傳送給各個客戶,而不需再傳輸一個像素數(shù)組的信息。

        為保證實時正確地傳輸課件以及電子白板信息,這里采用了TCP連接,直接使用套接字獲取輸入輸出流。

        在手機(jī)端,為了防止屏幕切換時發(fā)生閃爍,采用了雙緩沖技術(shù),將電子白板和課件圖像繪制到后臺的一張與屏幕大小相同的圖片screen_image上后,再在paint()方法中利用Graphics類將這張圖片screen_image繪制到屏幕上。這樣就避免了因繪制屏幕而發(fā)生的閃爍。

        2 實時聲音處理與傳輸

        要實現(xiàn)實時語音的傳輸,首先要在服務(wù)器端實現(xiàn)實時語音的采集和錄制。javax.sound.sampled軟件包中提供了一些對音頻數(shù)據(jù)進(jìn)行處理的類。在本系統(tǒng)中,AudioRec類利用這些語音處理的類,實現(xiàn)了對音頻的采集并錄制成wave文件?,F(xiàn)在關(guān)鍵的問題是要利用這些錄制的wave文件實現(xiàn)實時音頻的傳輸。

        因為目前大部分支持JAVA的手機(jī)并未提供JMF軟件包,所以應(yīng)用RTP、RTCP等實時流媒體傳輸協(xié)議傳輸實時音頻應(yīng)該會比較困難。早期流媒體的實現(xiàn),是利用HTTP連接來傳輸多媒體文件,下載到本地內(nèi)存中再進(jìn)行播放。而另一方面,J2ME的MMAPI(Mobile Media API)規(guī)范中也提供了一些實現(xiàn)多媒體規(guī)范的API,javax.microedition.media軟件包中包括了實現(xiàn)這些API的類。Player實現(xiàn)了對各種格式的音頻、視頻文件的播放。利用Manager類的createPlayer(InputStream stream,String type)方法可以創(chuàng)建一個Player對象。其中stream是獲取的資源的輸入流,type為媒體的格式。由文獻(xiàn)[4]可知媒體格式代表的意義為:

        audio/midiMIDI文件

        audio/sp-midi可擴(kuò)展多和弦MIDI

        audio/x-wav WAVPCM采樣音頻

        image/gifGIF動畫

        video/mpeg MPEG視頻

        這樣,在客戶端只需利用HttpConnection與計算機(jī)服務(wù)器建立HTTP連接,獲取當(dāng)前錄制的音頻文件的輸入流:

        HttpConnection con = (HttpConnection)Connector.open(fileURL);

        /*建立HTTP連接,fileURL即為要服務(wù)器音頻文件的URL*/

        con.setRequestMethod (HttpConnection.GET);/*設(shè)置HTTP為讀取信息*/

        return (InputStream)conn.openInputStream(); /*獲得輸入流*/

        利用此輸入流,就可以創(chuàng)建Player對象,實現(xiàn)實時音頻的播放:

        player=Manager.createPlayer(is,”audio/x-wav”);

        /*is獲取的輸入流,播放的音頻文件格式為wave音頻*/

        要實現(xiàn)實時錄制的音頻能在客戶端實時播放,不可能在服務(wù)器端將采集的聲音錄制成一個文件。借助文獻(xiàn)[3]提供的思路,可以在服務(wù)器端將音頻錄制成多個文件,且每個文件只錄制500ms到1000ms之間。并且循環(huán)錄制這幾個文件。在本系統(tǒng)的RecordThread類中就利用AudioRec類循環(huán)錄制5個wave文件:

        while(isstop==1)

        {

        try{

        AudioRec.AudioRecorder(\"E:\\\\Web網(wǎng)頁設(shè)計\\\\\"+file[i]);

        Thread.sleep(1000);//錄制1000ms

        i=(i+1)%5;//循環(huán)錄制

        AudioRec.stopRecording();

        }

        catch(Exception ex)

        {//異常處理}

        }

        每個客戶在登錄時都先下載第一個音頻文件播放,播放完后再下載下一個文件。利用這種思路,可以以接近實時的效果進(jìn)行音頻播放,其最大時延為N*len,其中N為循環(huán)錄制文件的個數(shù),len為單個文件的長度(時間上的長度)。Player對象有五種狀態(tài):UNREALIZED、REALIZED、PREFETCHED、STARTED、CLOSED,各狀態(tài)的轉(zhuǎn)換如圖2。因為Player對象播放的數(shù)據(jù)是實時下載,當(dāng)前一段音頻文件播放完畢后,再重新下載文件繼續(xù)播放。如果下載的速度太慢,音頻文件進(jìn)行切換時,中間就會出現(xiàn)明顯的延時。在這個問題上,文獻(xiàn)[3]提出了一種思路,其做法如下:運(yùn)用兩個Player對象,分別由兩個線程控制。其中一個Player播放音頻文件的同時,另一個Player利用HTTP連接下載接下來要播放的文件。這樣兩個Player交替播放、下載,就可以明顯改善延時缺點(diǎn)。依據(jù)其思路,部分實現(xiàn)代碼如下:

        String sRequestURL=\"http://\"+ipstr+

        \"/wfztest/file\"+1+\".wav\" ;

        //構(gòu)造初始的第一個音頻文件的URL

        HttpConnection conn =

        (HttpConnection)Connector.open(sRequestURL);

        conn.setRequestMethod(HttpConnection.GET); is=(InputStream)conn.openInputStream();

        //通過HTTP連接,獲取輸入流

        if(is!=1)

        {

        //獲得輸入流創(chuàng)建播放器

        player[0]=Manager.createPlayer(is,

        \"audio/X-wav\");

        if(player[0]!=1)

        {

        player[0].realize(); player[0].prefetch();

        player[0].start();

        }

        }

        /*循環(huán)做以下工作:一個Player播放同時,另一個下載文件*/

        while(true){

        i=(i+1)%5;//五個聲音文件來回的倒換

        (new CommandResources(i,j)).start();//下載音頻線程

        while(player[j].getDuration()==-1)

        {;}

        sleeptime=player[j].getDuration()/1000;

        Thread.sleep(sleeptime);

        /*前Player播放完畢后開始Player的播放*/

        player[(j+1)%2].start();/*準(zhǔn)備好的player開始播放*/

        player[j].stop();

        player[j].deallocate();/*已經(jīng)播放完的player釋放資源*/

        player[j].close();

        j=(j+1)%2;

        System.gc();//系統(tǒng)盡快回收內(nèi)存

        System.gc();

        }

        四 實例仿真

        本系統(tǒng)在上述設(shè)計下,服務(wù)器端和客戶端分別利用Jcreator IDE及JDK1.5.0、eclipse IDE及WTK2.5.1編程實現(xiàn)了系統(tǒng)程序,服務(wù)器配置IIS服務(wù)器及Access數(shù)據(jù)庫服務(wù),利用WTK模擬器進(jìn)行模擬,運(yùn)行效果如圖所示,圖3為客戶登錄界面,圖4為客戶端聊天界面,圖5為客戶端教學(xué)時播放課件的界面,圖6為服務(wù)器端教學(xué)時播放課件的界面。

        五 結(jié)束語

        本系統(tǒng)應(yīng)用J2SE和J2ME分別實現(xiàn)系統(tǒng)的服務(wù)器端程序和客戶端程序。較成功地將設(shè)計思路得以實現(xiàn)。開發(fā)過程中主要應(yīng)用了WTK模擬器進(jìn)行調(diào)試與運(yùn)行,并且在motorolaE680i真機(jī)利用GPRS網(wǎng)絡(luò)進(jìn)行了測試,測試過程中聲音及較大圖片的傳輸效果不太理想,有待于日后研究與解決。隨著J2ME在手機(jī)上日益廣泛以及3G網(wǎng)絡(luò)的到來,移動學(xué)習(xí)將不僅僅只是一個概念,而會成為一項實用技術(shù)和產(chǎn)品在今后逐漸普及。本系統(tǒng)在這一方向提供了較好的思路,是一個具有一定創(chuàng)新的應(yīng)用。

        參考文獻(xiàn)

        [1] 劉建設(shè),李青,劉金梅.移動學(xué)習(xí)研究現(xiàn)狀綜述[J].電化教育研究,2007,(7):21-25.

        [2] 高敏,吳介軍,姚紅靜.基于手機(jī)的M-Learning系統(tǒng)研究與設(shè)計[J].現(xiàn)代教育技術(shù),2008,18(8):93-96.

        [3] 鄭昀.J2ME手機(jī)流媒體之習(xí)作[EB/OL].

        [4] 胡虛懷,楊志和,李煥.J2ME移動設(shè)備程序設(shè)計[M].北京:清華大學(xué)出版社,2005:238-255.

        [5] 唐自仰,劉瑾,張克君.基于J2ME/Servlet的手機(jī)聊天系統(tǒng)[J].計算機(jī)工程,2009,35(10):262-263.

        [6] 孫耀庭.移動學(xué)習(xí)和移動服務(wù)的實踐與研究[J].中國遠(yuǎn)程教育,2008,(8):69-70.

        久久亚洲AV成人一二三区| 亚洲综合天堂av网站在线观看 | 国内免费AV网站在线观看| 国产精品白浆免费观看| 手机免费高清在线观看av| 人妻洗澡被强公日日澡电影| 丁香六月久久婷婷开心| 国产乱子伦精品无码码专区| 中文无码制服丝袜人妻AV| 久久亚洲宅男天堂网址| 日韩精品视频在线观看无| 国产欧美在线观看不卡| 亚洲精品一区二区| 久久久精品国产亚洲AV蜜| 蜜桃av一区二区三区| 成年女人免费v片| 日产国产精品亚洲系列| 久久亚洲Av无码专区| 日本一区不卡高清在线观看| 日产国产精品亚洲高清| 久久天天躁夜夜躁狠狠 | 免费AV一区二区三区无码| 国内精品久久人妻性色av| 亚洲中文字幕精品乱码2021| 人妻饥渴偷公乱中文字幕| 国产精品久久久久久52avav| 色噜噜狠狠色综合中文字幕| 日韩精品极品在线观看视频| 成人大片免费在线观看视频| 精品国产三级a∨在线| 中字幕久久久人妻熟女| 性色av成人精品久久| 国产亚洲一区二区三区综合片| 男女爱爱好爽视频免费看| 国产精品国产三级国产专播| 男女啪啪啪的高清视频| 国内最真实的xxxx人伦| 欧美激情在线不卡视频网站| 91精品国产综合久久久蜜臀九色| 亚洲综合网国产精品一区| 3344永久在线观看视频|