開發(fā)背景
為了放松心情儡羔,讓聽歌更加方便快捷宣羊,沒有廣告等其他干擾使用璧诵,于是便有了自己寫一個音樂播放器的想法。
開發(fā)環(huán)境搭建
使用Android studio 2.2 進行開發(fā)段只,Java使用的是1.7腮猖,最低支持Android4.0.3,api版本15 ; 編譯版本Android5.1赞枕,api版本22
開發(fā)步驟:
1.設(shè)計UI界面澈缺。
共三個界面(Activity),分別是啟動頁面炕婶,歌曲列表界面和播放界面姐赡。
其中歌曲界面包含三個選項,分別是默認列表柠掂,我喜歡的项滑,和我的歌單。他們通過viewpager和fragment關(guān)聯(lián)起來涯贞,使他們之間可以左右滑動切換枪狂。fragment里是一個listview,用來展示歌曲列表宋渔。并且給listview設(shè)置了點擊事件和長按事件州疾,分別用來播放歌曲和添加到其他列表。
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ù)庫中建了兩張表,分別是我喜歡表和我的歌單表棚贾,表結(jié)構(gòu)為歌曲id窖维,歌曲地址,歌名妙痹,作者和時長铸史。方法是當選擇添加歌曲時,將歌的信息插入到數(shù)據(jù)庫中對應(yīng)的表中怯伊,執(zhí)行插入SQL語句琳轿,然后通知其他列表去數(shù)據(jù)庫取數(shù)據(jù),執(zhí)行查詢SQL語句耿芹,然后刷新列表崭篡,將歌曲展示到listview上。
5.歌詞
暫時使用的是本地的歌詞吧秕,先在本地搜索歌詞文件媚送,.lrc結(jié)尾的。然后自定義了一個控件寇甸,用來顯示歌詞。原理是解析本地歌詞文件疗涉,根據(jù)歌詞里的時間和對應(yīng)歌詞信息拿霉,然后根據(jù)歌曲的進度,去繪制對應(yīng)的歌詞文字咱扣。
加油