文/張琦
基于Android的音樂播放器設計與實現
文/張琦
本研究課題屬于移動互聯網平臺軟件開發領域,開發基于Android平臺的手機音樂播放器應用軟件。該應用軟件頁面友好,功能完善,支持MP3、WMA等多種格式的音頻文件,主要實現文件掃描、暫停、歌詞同步、上一首、下一首、音量調節、后臺播放等功能,經過多輪測試,能夠在安卓手機上穩定運行。
Android 音樂播放器 軟件開發
作為一款運行在手機上的音樂播放器,必須具備良好的用戶界面,且界面須簡單明朗易于操作。因此音樂播放器的需求可以從音樂播放器的界面來劃分。一般來講,音樂播放器的需求主要分為主界面需求、播放界面需求。
本地列表按鈕:可打開本地播放列表。應用程序從主界面切換到本地播放列表界面,可對列表中的音樂進行操作。
退出按鈕:可退出音樂播放器。
上一曲/暫停/播放/下一曲按鈕:用戶點擊上一曲或下一曲按鈕,音樂播放器切換到上一曲或下一曲,并播放新的歌曲,用戶點擊播放或暫停按鈕,音樂播放器播放或暫停。
歌詞顯示:播放音樂的同時可同步顯示歌詞。
一款優秀的手機軟件需要做到良好的用戶體驗,主要體現在以下兩點:
主界面和播放界面要做到界面設計友好,操作簡單,設計合理,UI設計要能讓軟件變得有個性有品味,還要讓軟件的操作變得舒適、簡單、自由,充分體現軟件的定位和特點。
能夠迅速且準確的處理用戶的各種請求,各項功能切換要做到不延遲、不卡頓,處理業務邏輯較為復雜或響應時間較長的功能時,需要給出提示,讓用戶知道程序還在運行。
通過對音樂播放器各項功能的需求分析,主要包含以下功能:
首次運行軟件時,軟件將自動訪問擴展卡中的音樂文件和LRC文件,然后將音樂文件的信息填充到播放列表中。當用戶點擊音樂時,音樂會自動播放,同時顯示LRC歌詞,用戶也可以進行各種操作,比如上一曲、刪除音樂等。
播放音樂時,可以同步顯示歌詞,拖拽進度條,歌詞可做到實時跟隨。
實現歌曲列表的選擇,可以選擇音樂列表,以及掃描內存、退出等功能。
根據需求分析,音樂播放器的功能由播放列表模塊、歌詞顯示模塊、功能菜單模塊組成。
首次運行軟件時,進入音樂播放列表界面,該界面使用了ListView列表控件、SeekBar音軌控件、ToggleButton按鈕控件、TextView文本顯示控件。
(1)本地列表的實現。此功能需要調用setCurrentList(int which)方法,當用戶點擊音樂列表上的音樂文件時,音樂自動播放。點擊時需要調用OnclickListener方法,并在Oncreate()中注冊此方法。
(2)上一曲/暫停/播放/下一曲功能。新建PlayerActivity類,在該類中對選中的MP3文件進行播放、暫停和停止操 作。 在LocalMP3ListActivity類 中 覆 寫onListItemClick()方法,利用intent對象來傳遞得到的MP3文件(即MP3Info對象)到PlayerActivity類中。
在GeCiView中通過intent傳遞選中的按鈕,啟動PlayerService,實現在Service中執行播放、暫停和停止。然后編寫對LRC文件進行處理的類LrcProcesser,將時間和歌詞分別讀取到一條單獨的隊列(Queue)中,再將兩條隊列放入List中。在DownloadServive的run()函數中實現對LRC文件的下載,同 時 在 WriteSdcard里 對 MP3Info中 的 getLocalMP3Info()方法中對lrcName和lrcSize進行相應設置。最后在PlayerActivity中,通過Handler控制run函數反復執行不斷比較已經播放的時間與通過LrcProcesser處理后的時間隊列中的時間,在合適的時間取出時間隊列和歌詞隊列中對應的隊列元素,將歌詞隊列顯示在lrcText中,從而實現歌詞的顯示。
(1) 掃 描 功 能。 新 建 GetMusic類, 首 先 定 義array并 將 其 實 例 化,接 著 調 用 ArrayList
(2)退出功能。用戶點擊退出按鍵后可以退出音樂播放器。該模塊在Activity中重寫onKeyDown方法,可以監聽到退出鍵,也可直接調用OnBackpress方法實現對退出鍵的監聽。
本文操使用的是Android基于Windows的操作系統;支持Android2.2以上版本;開發環境是Eclipse 4.3.2和ADT 22.3。該播放器由由播放列表模塊、歌詞顯示模塊、功能菜單模塊組成,能實現基本的上一曲/暫停/播放/下一曲功能,以及掃描、歌詞顯示功能,系統界面設計友好,操作簡單,設計合理,符合音樂播放器的基本需求。
[1]畢廣吉.Java程序設計實例教程[M].北京:冶金工業出版社,2010:34-45.
[2]陳璟,陳平華,李文亮.Android內核分析[J].廣東:廣東工業大學計算機學院,2012:112-115.
[3]高昂.支持動態語言的Android平臺[M].北京:人民郵電出版社,2011:12-23.
作者單位 武漢華夏理工學院 湖北省武漢市 430223
張琦(1989-),男,碩士學位。研究方向為軟件工程、數據庫技術。