開發(fā)背景
為了放松心情,讓聽歌更加方便快捷,沒有廣告等其他干擾使用,于是便有了自己寫一個音樂播放器的想法。
開發(fā)環(huán)境搭建
使用Android studio 2.2 進行開發(fā),Java使用的是1.7,最低支持Android4.0.3,api版本15 ; 編譯版本Android5.1,api版本22
開發(fā)步驟:
1.設計UI界面。
共三個界面(Activity),分別是啟動頁面,歌曲列表界面和播放界面。
其中歌曲界面包含三個選項,分別是默認列表,我喜歡的,和我的歌單。他們通過viewpager和fragment關聯(lián)起來,使他們之間可以左右滑動切換。fragment里是一個listview,用來展示歌曲列表。并且給listview設置了點擊事件和長按事件,分別用來播放歌曲和添加到其他列表。
2.數(shù)據(jù)
歌曲是通過Android提供的四大組件之一ContentProvide內(nèi)容提供者,然后獲取內(nèi)容解析器,就可以查詢手機中的歌曲。
3.核心代碼是音樂播放的工具類
這里面封裝了音樂播放用到的各種方法,有播放,暫停,上一首,下一首,監(jiān)聽音樂進度,獲取當前音樂的信息,將音樂的時間格式化,等等。
首先獲取了Android提供的音樂播放類MediaPlayer,然后調(diào)用它的api,實現(xiàn)播放,暫停等功能,然后封裝成各種方法,方便后期調(diào)用。其中難度有點大的是監(jiān)聽音樂的進度,采用的方法是開啟一個子線程,每隔一秒獲取一下當前音樂播放的位置,然后通過接口回調(diào),返回給調(diào)用者。
4.如何將默認列表中的歌曲添加到其他列表
采用了在本地建數(shù)據(jù)庫的方法,在數(shù)據(jù)庫中建了兩張表,分別是我喜歡表和我的歌單表,表結構為歌曲id,歌曲地址,歌名,作者和時長。方法是當選擇添加歌曲時,將歌的信息插入到數(shù)據(jù)庫中對應的表中,執(zhí)行插入SQL語句,然后通知其他列表去數(shù)據(jù)庫取數(shù)據(jù),執(zhí)行查詢SQL語句,然后刷新列表,將歌曲展示到listview上。
5.歌詞
暫時使用的是本地的歌詞,先在本地搜索歌詞文件,.lrc結尾的。然后自定義了一個控件,用來顯示歌詞。原理是解析本地歌詞文件,根據(jù)歌詞里的時間和對應歌詞信息,然后根據(jù)歌曲的進度,去繪制對應的歌詞文字。
加油