聶 茹,黃誠(chéng)燦
Android一詞的本義指“機(jī)器人”,同時(shí)也是Google于2007年11月5日宣布的基于Linux平臺(tái)的開(kāi)源移動(dòng)終端操作系統(tǒng)的名稱(chēng),該平臺(tái)由操作系統(tǒng)、中間件、用戶界面和應(yīng)用軟件組成,是首個(gè)為移動(dòng)終端打造的真正開(kāi)放和完整的移動(dòng)軟件[1]。
隨著計(jì)算機(jī)的廣泛運(yùn)用,手機(jī)市場(chǎng)的迅速發(fā)展,各種音頻視頻資源也在網(wǎng)上廣為流傳,這些資源看似平常,但已經(jīng)漸漸成為人們生活中必不可少的一部分了。于是各種手機(jī)播放器也緊跟著發(fā)展起來(lái),但是很多播放器一味追求外觀花哨,功能龐大,對(duì)用戶的手機(jī)造成了很多資源浪費(fèi),比如CPU,內(nèi)存等的占用率過(guò)高,在用戶需要多任務(wù)操作時(shí),受到了不小的影響,帶來(lái)了許多不便,而對(duì)于大多數(shù)普通用戶,許多功能用不上,形同虛設(shè)。針對(duì)以上各種弊端,選擇了開(kāi)發(fā)實(shí)用的Android音樂(lè)播放器,將各種性能優(yōu)化,繼承播放器的常用功能,滿足一般用戶的需求,能夠?qū)崿F(xiàn)音樂(lè)的播放、暫停、快進(jìn)、快退、上一曲、下一曲、聲音控制、播放列表,播放時(shí)間以及播放列表。通過(guò)播放列表,用戶可以選擇播放的音樂(lè),播放器也可以顯示該音樂(lè)的歌曲名、專(zhuān)輯、歌手以及歌曲的播放總時(shí)間,播放進(jìn)度等歌曲的相關(guān)功能;用戶還可以通過(guò)音樂(lè)增減按鈕調(diào)節(jié)聲音大小,還可以選擇循環(huán)播放和順序播放。
Android SDK(Software Development Kit)提供了使用Java進(jìn)行Android應(yīng)用開(kāi)發(fā)的應(yīng)用程序接口和工具。其中,Android模擬器和Eclipse[2]開(kāi)發(fā)工具是最重要的工具,同時(shí)SDK也包含了各種在模擬器上用于調(diào)試、打包和安裝的工具。
Android是軟件集,它包括一個(gè)操作系統(tǒng),中間件和一些重要的應(yīng)用程序[3]。Android的系統(tǒng)架構(gòu)從上往下依次是應(yīng)用程序、應(yīng)用程序框架和組件、Android運(yùn)行時(shí)庫(kù)和其他庫(kù)、優(yōu)化的Linux內(nèi)核[4~5]。
如圖1所示:
圖1 功能模塊圖
首先,搭建android平臺(tái),通過(guò)Eclipse以及環(huán)境變量的配置搭建android平臺(tái),實(shí)現(xiàn)手機(jī)模擬器然后搭建音樂(lè)播放器的界面,通過(guò)使用android的組件,將相關(guān)的動(dòng)作按鈕通過(guò)啟動(dòng)StartIntent()方法來(lái)使各組件進(jìn)行跳轉(zhuǎn),實(shí)現(xiàn)音樂(lè)播放器的功能,其具體的實(shí)現(xiàn)采用java語(yǔ)言。
先實(shí)現(xiàn)播放頁(yè)面的 (包括各種控制按鈕和專(zhuān)輯圖片)布局代碼 main.xml以及播放列表的界面設(shè)計(jì)playlist.xml文件。
其中播放按鈕、暫停、上一曲、下一曲、聲音按鈕采用xml文件,在按下和得到焦點(diǎn)的時(shí)候會(huì)做相應(yīng)的改變,關(guān)鍵代碼如下:
有兩個(gè)動(dòng)畫(huà)文件log.xml和log_two.xml文件,當(dāng)動(dòng)畫(huà)結(jié)束時(shí)啟動(dòng)另外一個(gè)activity動(dòng)畫(huà)特效是兩個(gè)imageView同時(shí)采用淡入,旋轉(zhuǎn)和,縮放的特效其調(diào)入動(dòng)畫(huà)關(guān)鍵代碼為:
音樂(lè)播放器包括聲音控制模塊,上一曲下一曲,播放,暫停,播放列表幾個(gè)模塊。
3.3.1 聲音控制模塊
聲音有兩個(gè)按鈕控制,一個(gè)增加聲音和一個(gè)減少聲音。通過(guò)這兩個(gè)按鈕用戶可以調(diào)節(jié)播放音樂(lè)的聲音大小,使用AudioManager組件對(duì)聲音的大小進(jìn)行增減,最大為7,最小為0。當(dāng)用戶點(diǎn)擊聲音按鈕時(shí),若是增按鈕,對(duì)聲音進(jìn)行增加;若是減按鈕對(duì)聲音進(jìn)行減小,如圖2所示:
圖2 聲音控制圖
關(guān)鍵代碼如下:
聲音控制的程序流程圖如下所示:
3.3.2 播放暫停模塊
當(dāng)用戶點(diǎn)擊播放暫停按鈕時(shí),播放器就對(duì)當(dāng)前播放事件監(jiān)聽(tīng),從而控制當(dāng)前音樂(lè)的播放暫停,關(guān)鍵代碼如下://播放按鈕
3.3.3 上一曲下一曲模塊
當(dāng)用戶點(diǎn)擊上一曲下一曲按鈕時(shí),播放器就對(duì)當(dāng)前播放事件監(jiān)聽(tīng),從音樂(lè)列表中轉(zhuǎn)換音樂(lè),從而控制當(dāng)前音樂(lè)的上一曲下一曲,關(guān)鍵代碼如下:
//上一曲鍵事件監(jiān)聽(tīng)器
圖3 聲音控制流程圖
3.3.4 音樂(lè)播放列表模塊
音樂(lè)播放列表由activity組件是實(shí)現(xiàn),能夠?qū)Ξ?dāng)前android手機(jī)模擬器sd卡中MP3音樂(lè)文件進(jìn)行讀取和顯示,包括歌曲名、專(zhuān)輯、歌曲時(shí)間以及歌手名。用戶可以選擇想要播放的音樂(lè)對(duì)其播放。
音樂(lè)播放列表,如圖4所示:
圖4 音樂(lè)播放器列表
本文對(duì)播放器的系統(tǒng)結(jié)構(gòu)框架做了精心的構(gòu)思與設(shè)計(jì),采用主要開(kāi)發(fā)工具是Eclipse6.0和Java語(yǔ)言的支持,Android Development Tool的插件,Android SDK2.3版本的全面結(jié)合,使整個(gè)音樂(lè)播放器系統(tǒng)功能得以實(shí)現(xiàn)。夠?qū)崿F(xiàn)音樂(lè)的播放、暫停、快進(jìn)、快退、上一曲、下一曲、聲音控制、播放列表,播放時(shí)間以及播放列表。通過(guò)播放列表,用戶可以選擇播放的音樂(lè),播放器也可以顯示該音樂(lè)的歌曲名、專(zhuān)輯、歌手以及歌曲的播放總時(shí)間,播放進(jìn)度等歌曲的相關(guān)功能;用戶還可以通過(guò)音樂(lè)增減按鈕調(diào)節(jié)聲音大小,還可以選擇循環(huán)播放和順序播放,因此,該款基于Android的音樂(lè)播放器系統(tǒng)具有很好的發(fā)展前景。
[1]百度百科.Android[EB/OI].[2009-07-23].http://baike.b aidu.com/view/1241829.htm?fr=ala0_1_1 Baidu Encyc lopedia.Android[EB/OI].[2009-07-23].http://baike.bai du.com/view/1241829.htm?fr=ala0_1_1.
[2]葉達(dá)峰.Eclipse編程技術(shù)與實(shí)例[M].北京:人民郵電出版社,2006 YE Da-feng.Eclipse programming tech niques and examples [M].Beijing: People's Posts and Telecommunications Press, 2006
[3]姚昱曼,劉衛(wèi)國(guó).Android的架構(gòu)與應(yīng)用開(kāi)發(fā)研究[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2008(11):110-112 YAO Yu-man,LIU Wei-guo.Research on Android architecture and application development[J].Computer Systems & Applicati ons, 2008(11):110-112
[4]陳琮,陳平華,李文亮.Android內(nèi)核分析[J].現(xiàn)代計(jì)算機(jī),2009(11):112-115 CHEN Jing,CHEN Ping-hua,LI Wen-liang.Analysis of Android kernel [J].Modern Computer, 2009(11):112-115
[5]田森,李大和.用Android開(kāi)發(fā)手機(jī)應(yīng)用[J].程序員,2008(1):56-61 TIAN SEN,LI Da-he.Development o f mobile phone application with Android[J].Programmer, 2008(1):56-61