申圣兵 聶立文
?
基于Android的手機學(xué)習(xí)平臺的開發(fā)與應(yīng)用
申圣兵 聶立文
湖南高速鐵路職業(yè)技術(shù)學(xué)院,湖南 衡陽 421000
為適應(yīng)校園無線網(wǎng)絡(luò)的完善和移動智能終端快速普及的新形式,提出構(gòu)建基于Android的移動學(xué)習(xí)平臺,系統(tǒng)服務(wù)器端和Android客戶端的主要技術(shù)實現(xiàn)。
Android客戶端;手機學(xué)習(xí)平臺
隨著校園無線網(wǎng)絡(luò)的逐漸完善和移動智能終端的快速普及,校園內(nèi)師生對于隨時隨地瀏覽學(xué)習(xí)資料的需求在持續(xù)增長。但目前校園網(wǎng)中提供的學(xué)習(xí)性的資料普遍基于Web模式,無法有效的兼容智能手機和平板電腦,同時也無法適應(yīng)用戶使用習(xí)慣向移動化方向發(fā)展的趨勢。所以需要建設(shè)適用于移動互聯(lián)網(wǎng)的學(xué)習(xí)平臺,提供方便、快捷和易用的服務(wù),為學(xué)校的教育教學(xué)提供方便。目前的移動平臺主要分為iOS和Android,Android系統(tǒng)因其開放性、易用性迅速得到業(yè)界和社會的認(rèn)可,并引領(lǐng)著目前的技術(shù)潮流。[1]
1.1 系統(tǒng)總體架構(gòu)
手機學(xué)習(xí)平臺的架構(gòu)如下圖1所示,它包括數(shù)據(jù)庫服務(wù)器、Web服務(wù)器、無線網(wǎng)絡(luò)和Android客戶端。數(shù)據(jù)庫服務(wù)器和Web服務(wù)器主要負責(zé)學(xué)習(xí)資源的收集、整理和發(fā)布。Android客戶端主要負責(zé)對服務(wù)器的訪問。
圖1 系統(tǒng)結(jié)構(gòu)
服務(wù)器端的內(nèi)容主要以Web頁面的方式呈現(xiàn),由于主要是在移動設(shè)備上瀏覽,Web頁面對移動設(shè)備進行了優(yōu)化,采用了“自適應(yīng)網(wǎng)頁技術(shù)”及HTML 5技術(shù)。
1.2 服務(wù)器端資源音視頻格式編碼
由于是學(xué)習(xí)平臺中的資源包含有大量的音視頻,它們必須滿足一定的要求才能適合移動終端訪問,音視頻格式必須實現(xiàn)流媒體播放即支持邊下載邊播放。手機網(wǎng)絡(luò)視頻一般是flv和mp4格式,鑒于MP4/h.264編碼的優(yōu)勢,視頻多采用MP4文件格式存儲,音頻采用aac編碼。[2]有些視頻需要使用第三方軟件進行格式轉(zhuǎn)換,如使用格式工廠進行轉(zhuǎn)換設(shè)置如圖2:
1.3 播放器插件在Web頁面中的使用
由于學(xué)習(xí)平臺主要是通過Web頁面展示,Web頁面播放視頻最重要的是使用手機Web網(wǎng)頁視頻播放插件,這里我們推薦一款免費可定制的Web網(wǎng)頁視頻播放插件ckplayer,可以到www.ckplayer.com免費下載。下載后將其解壓到項目文件夾下,如下圖3:
播放器在Web頁面中調(diào)用的方法:
CKobject.embed('ckplayer/ckplayer.swf','a1','ckplayer_a1','300','200',false,flashvars,video);
相關(guān)參數(shù)意義如下,更詳細的解說可以參考官網(wǎng)。
ckplayer/ckplayer.swf:播放器所在路徑
a1:網(wǎng)頁容器ID
ckplayer_a1:播放器的ID
300和200:播放器的寬度和高度
false:優(yōu)先調(diào)用設(shè)置,false=優(yōu)先調(diào)用flash播放器,true=優(yōu)先調(diào)用HTML5播放器
flashvars:播放器的初始化參數(shù),以及HTML5初始化參數(shù)
2.1 開發(fā)方法
Android客戶端采用Eclipse開發(fā),主要是利用android自帶的WebView控件來訪問和控制站點,WebView是基于webkit引擎展現(xiàn)web頁面的控件,WebView控件功能強大,除了具有一般View的屬性和設(shè)置外,還可以對url請求、頁面加載、渲染、頁面交互進行強大的處理。其使用的一般步驟如下:
(1)在Activity中實例化WebView組件:WebView webView = new WebView(this);
(2)調(diào)用WebView的loadUrl()方法,設(shè)置WevView要顯示的網(wǎng)頁:
互聯(lián)網(wǎng)用:webView.loadUrl("Web地址");
本地文件用:webView.loadUrl("file:/// android_asset/XX.html");本地文件存放在assets 文件中。
(3)調(diào)用Activity的setContentView( )方法來顯示網(wǎng)頁視圖。
(4)用WebView點鏈接看了很多頁以后為了讓W(xué)ebView支持回退功能,需要覆蓋覆蓋Activity類的onKeyDown()方法,如果不做任何處理,點擊系統(tǒng)回退剪鍵,整個瀏覽器會調(diào)用finish()而結(jié)束自身,而不是回退到上一頁面
(5)需要在AndroidManifest.xml文件中添加權(quán)限,否則會出現(xiàn)Web page not available錯誤。
2.2 訪問視頻全屏問題的解決
在Android中,傳統(tǒng)的一般有三種方式來實現(xiàn)視頻的播放:
(1)使用其自帶的播放器。指定Action為ACTI ON_VIEW,Data為Uri,Type為其MIME類型。
(2)使用VideoView來播放。在布局文件中使用VideoView結(jié)合MediaController來實現(xiàn)對其控制。
(3)使用MediaPlayer類和SurfaceView來實現(xiàn),這種方式很靈活。
但是由于本項目中的內(nèi)容多是由Web頁面展示,它們不能嵌入Web頁面中,所以上面的三種方式并不太適合,我們選擇了可以嵌入的一款播放器來實現(xiàn)。手機由于屏幕尺寸關(guān)系,視頻播放推薦使用全屏方式,所以視頻全屏是一項非常重要的功能,它主要是通過重載on Show Custom View方法來實現(xiàn)。[3]當(dāng)用戶點進擊全屏按鈕時,會自動觸發(fā)on Show Custom View事件,處理代碼如下:
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
webView.setVisibility(View.INVISIBLE);
if (xCustomView != null){
callback.onCustomViewHidden();
return;
}
video_fullView.addView(view);
xCustomView = view;
xCustomViewCallback = callback;
video_fullView.setVisibility(View.VISIBLE);
退出全屏通過重載onHideCustomView方法來實現(xiàn)。其實現(xiàn)的主要代碼如下:
if(xCustomView == null)//不是全屏播放狀態(tài)
return;
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
xCustomView.setVisibility(View.GONE);
video_fullView.removeView(xCustomView);
xCustomView = null;
video_fullView.setVisibility(View.GONE);
xCustomViewCallback.onCustomViewHidden();
webView.setVisibility(View.VISIBLE);
視頻播放效果圖如下圖4:
圖4 視頻播放
隨著移動互聯(lián)網(wǎng)的快速發(fā)展,基于 Android 的移動應(yīng)用具有廣闊的發(fā)展前景,本文在分析師生需求和現(xiàn)有技術(shù)條件的基礎(chǔ)上,提出了基于 Android 的學(xué)習(xí)平臺的搭建,實現(xiàn)了服務(wù)器端資源的采集、管理和發(fā)布以及Android 客戶端應(yīng)用程序。測試表明系統(tǒng)適用于當(dāng)前的技術(shù)環(huán)境 服務(wù)端通過虛擬化技術(shù)實現(xiàn)了高可用性和可拓展性,客戶端實現(xiàn)了訪問功能,具有較好的用戶體驗,能夠滿足校園師生的需求。
[1]唐雄,張巨發(fā),段昌奉,等.基于Android智能手機的醫(yī)院移動護理信息系統(tǒng)開發(fā)及應(yīng)用[J].中國數(shù)字醫(yī)學(xué),2013,8(2):95-96.
[2]趙旭輝.基于Android手機的教學(xué)質(zhì)量評測軟件開發(fā)[J].電腦開發(fā)與應(yīng)用,2015(1):73-75.
[3]芮素文.基于Android平臺軟件開發(fā)方法的研究與應(yīng)用[J].信息通信,2015(3):106.
The Development and Application of Mobile Learning Platform based on Android
Nie Liwen Shen Shengbing
Hunan high speed railway,Career Technical College,Hengyang,Hunan 421000,.
in order to adapt to the improvement of campus wireless network and the rapid popularization of mobile intelligent terminal,the main technology of building a mobile learning platform based on Android is proposed,which is based on Android.
Android client;mobile learning platform
TP311.52
A
1009-6434(2016)6-0006-03