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