摘 要:本文結(jié)合Android Development Tool的插件和Android SDK技術(shù),在AVD模擬器上設(shè)計(jì)并實(shí)現(xiàn)了一款基于Android平臺的音樂播放器。經(jīng)過測試,在Android系統(tǒng)中能獨(dú)立運(yùn)行。
關(guān)鍵詞:安卓平臺;移動設(shè)備;音樂播放器
中圖分類號:TP311.52
Android平臺技術(shù)是目前移動設(shè)備的主流系統(tǒng)。音樂播放器作為一個用戶必備的應(yīng)用,在移動設(shè)備中占有極其重要的地位。目前Android市場上的酷狗音樂和QQ音樂都有著廣泛的消費(fèi)人群。雖然市場上有很多優(yōu)秀的播放器,但大多數(shù)還只是擁有功能龐大、花哨的外觀,嚴(yán)重浪費(fèi)手機(jī)資源如CPU、運(yùn)行內(nèi)存、電量等,對大部分純粹聽歌的人群而言,音樂播放器的很多強(qiáng)大功能是用不上的。針對以上各種弊端,本文主要目的是:優(yōu)化播放器的性能,完善播放器的常用功能,滿足一般用戶的需求,利用Java語言、Eclipse開發(fā)平臺、Android SDK、Android ADT等開發(fā)工具,設(shè)計(jì)并開發(fā)出一款功能簡便又快捷的音樂播放器。
1 需求分析
根據(jù)用戶需要,從播放器的主頁面、播放界面、設(shè)置三個方面分析其功能需求。
1.1 播放器的主頁面。當(dāng)播放器開始運(yùn)行時(shí),用戶先從“我的音樂”、“我最愛聽”、“在線曲庫”中選擇一個播放列表,隨意點(diǎn)擊一首歌,進(jìn)行播放。通過點(diǎn)擊“上一曲”、“下一曲”、“暫?!卑粹o控制移動設(shè)備播放上/下歌曲或者暫停播放。其中,“我的音樂”里列出移動設(shè)備中所有的音樂;“我最愛聽”里不僅可以列出用戶比較喜歡的音樂,而且能對該列表添加、刪除選中的歌曲;當(dāng)網(wǎng)絡(luò)暢通時(shí),“在線曲庫”能在線播放和在線下載。
1.2 播放界面。在播放界面,除了能控制歌曲播放外,還應(yīng)顯示當(dāng)前歌曲的信息、歌詞,歌詞顯示的字體顏色以及大小也可以根據(jù)用戶的喜好隨意改變。用戶可以通過點(diǎn)擊模式按鈕改變播放模式,并且隨時(shí)能切換播放列表。聽到喜歡的歌曲時(shí),用戶還可以通過“一鍵分享”將正在聽的歌曲通過微博、QQ等方式,分享給朋友。
1.3 播放器設(shè)置。用戶可根據(jù)自己的喜好,對播放模式、歌詞效果、睡眠定時(shí)、搖晃切歌進(jìn)行設(shè)置,并提供退出功能。
2 功能設(shè)計(jì)
通過需求分析,得到播放器的功能模塊構(gòu)成,如圖1所示。
3 播放器的實(shí)現(xiàn)
Android程序的編譯運(yùn)行有兩種方法,一種是利用模擬器AVD在電腦上模擬運(yùn)行,另一種是直接利用Android設(shè)備進(jìn)行運(yùn)行。利用AVD在電腦上模擬Android環(huán)境編寫代碼、調(diào)試和運(yùn)行。
3.1 主界面實(shí)現(xiàn)。在相對位置布局里,主要通過線性布局LinearLayout水平放置多個按鈕來實(shí)現(xiàn)。效果如圖2所示。
圖2 主頁面 圖3 播放界面
3.2 播放界面實(shí)現(xiàn)。Android系統(tǒng)有自帶的音軌SeekBar,不過自帶的通常在外觀和功能上都很難滿足用戶的需要,所以在此自定義了一個音軌SeekBar(playlayout.xml):
Android:id=\"@+id/my_seekbar\" Android:layout_width=\"fill_parent\" Android:layout_height=\"wrap_content\" Android:paddingTop=\"3dp\" Android:layout_toLeftOf=\"@+id/tv_durrction\" Android:layout_toRightOf=\"@+id/tv_current_time\" Android:progressDrawable=\"@drawable/seek_bg\" Android:thumb=\"@drawable/thumb\" Android:thumbOffset=\"3dp\" /> 代碼中Android:thumb=\"@drawable/thumb\"是音軌游標(biāo)的圖片資源。播放界面采用與主界面相似的藍(lán)色色調(diào),使播放器風(fēng)格簡潔且完美搭配。呈現(xiàn)效果如圖3所示。 3.3 設(shè)置功能實(shí)現(xiàn)。(1)播放模式設(shè)置。在播放循環(huán)方式功能的實(shí)現(xiàn)上啟動一個Activity給用戶選擇播放方式,然后在上一曲、下一曲的方法中先判斷循環(huán)方式,根據(jù)不同的循環(huán)方式來給定不同position的值,單曲循環(huán)時(shí)position的值不變,隨機(jī)播放時(shí)position是歌曲總數(shù)的隨機(jī)值,順序播放時(shí),position++,當(dāng)數(shù)值與歌曲數(shù)目相同時(shí),停止播放音樂,如果是列表循環(huán),即position重新歸零。(2)歌詞效果。獲取歌詞文件LRC中的時(shí)間和歌詞內(nèi)容后,在指定的時(shí)間內(nèi)播放響應(yīng)的內(nèi)容,用設(shè)置paint來實(shí)現(xiàn)歌詞的顯示顏色和字體大小。(3)睡眠定時(shí)。利用Android中比較特殊的類Handler,設(shè)置一個時(shí)間分鐘數(shù),到達(dá)預(yù)設(shè)的時(shí)間后,就停止播放音樂。代碼如下: static Handler handler = new Handler() { public void handleMessage(Message msg) { super.handleMessage(msg); MyApplication.getInstance().exit(); } }; (4)搖晃切歌。通過檢測加速度在x、y、z方向上分量變化的方法來檢測手機(jī)搖晃。設(shè)置檢測搖晃閾值為1500,該值將影響檢測靈敏度,越小越敏感。當(dāng)檢測到手機(jī)搖晃時(shí),調(diào)用隨機(jī)播放中的上下一曲的功能來實(shí)現(xiàn)換歌曲功能。 4 播放器測試 在模擬器上實(shí)現(xiàn)后,安裝到手機(jī)上編譯,進(jìn)行測試。本次手機(jī)設(shè)備型號為:中興n5。 4.1 睡眠定時(shí)與搖晃切歌測試。進(jìn)入設(shè)置菜單,選擇睡眠定時(shí),輸入分鐘整數(shù),經(jīng)過預(yù)測的時(shí)間后,音樂播放器自動停止播放。經(jīng)測試,該功能完全正常使用。選擇搖一搖換歌曲,然后程序提醒下一次進(jìn)入播放界面生效。然后按照要求,先退回主頁面,然后重新進(jìn)入播放頁面,這時(shí)就可以開始搖晃手機(jī)進(jìn)行切歌,經(jīng)過測試,該部分功能使用正常。 4.2 播放模式測試。播放模式有四種,分別是順序播放、單曲循環(huán)播放、列表循環(huán)播放、隨機(jī)播放。切換不同的模式進(jìn)行測試,實(shí)踐證明所有模式均可以使用,當(dāng)選擇單曲循環(huán)時(shí),點(diǎn)擊上下一曲均不改變歌曲,當(dāng)切換到隨機(jī)模式,點(diǎn)擊上下一曲能夠隨機(jī)播放音樂。經(jīng)過測試,以上播放模式均能正常使用。播放模式的選擇在設(shè)置菜單中,如圖4所示。 圖4 播放模式 圖5 分享列表 圖6 分享切換過來的界面 4.3 歌曲一鍵分享測試。在播放界面,點(diǎn)擊左上角的分享鍵,彈出分享列表如圖5所示,選擇想要分享的app,本次測試選擇qq空間,隨后切換到圖6界面可以在默認(rèn)編輯欄中輸入播放的音樂歌曲名和演唱者,測試可以成功運(yùn)行。 5 總結(jié)與展望 本文通過Android Development Tool的插件和Android SDK的組合,設(shè)計(jì)并實(shí)現(xiàn)了一款基于Android平臺的音樂播放器。在基本的播放功能之上,還添加了一些新穎的附加功能:睡眠定時(shí)、搖一搖換歌曲、一鍵分享,歌詞字體大小顏色的自定義設(shè)置。完成了預(yù)期的大部分功能,但也仍存在缺陷有待進(jìn)一步的完善。 參考文獻(xiàn): [1]李剛.瘋狂Android講義[M].北京:電子工業(yè)出版社,2012. [2]郭宏志.Android應(yīng)用開發(fā)詳解[M].北京:電子工業(yè)出版社,2011. [3]高蘭蘭.基于Android平臺的多分辨率解決方案[J].軟件,2011(06):102-104. [4]宋小倩,周東升.基于Android平臺的應(yīng)用開發(fā)研究[J].軟件導(dǎo)刊,2011(01):91-93. [5]王志超,王敏.基于Android平臺的MP3播放器分析與設(shè)計(jì)[J].科教導(dǎo)刊,2011(25):102-104. 作者簡介:蘇靜(1981-),女,湖南石門人,碩士,講師,研究方向:計(jì)算機(jī)軟件與網(wǎng)絡(luò)技術(shù)。 作者單位:瓊州學(xué)院 電子信息工程學(xué)院,海南三亞 572022 基金項(xiàng)目:海南省高??蒲许?xiàng)目(項(xiàng)目編號:HJKJ2013—43);瓊州學(xué)院本科實(shí)踐教學(xué)改革項(xiàng)目(項(xiàng)目編號:QYSJ2013-002)。