摘要:本系統(tǒng)基于Android操作平臺(tái),主要使用了Eclipse、SDK、ADT、SQLite等相關(guān)工具和技術(shù)。系統(tǒng)滿(mǎn)足了用戶(hù)對(duì)音樂(lè)播放操作的基本需求,具有搜索本地歌曲、暫停/播放、上一首、下一首、音軌拖動(dòng)調(diào)節(jié)、音量控制、歌詞同步顯示、單曲循環(huán)或隨機(jī)播放等功能。該系統(tǒng)響應(yīng)時(shí)間短、界面布局簡(jiǎn)潔明了。
關(guān)鍵詞:Android;音樂(lè)播放器;系統(tǒng)實(shí)現(xiàn)
中圖分類(lèi)號(hào):TP311.52 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9416(2018)08-0156-01
“聽(tīng)音樂(lè)”是眾多人所喜愛(ài)用來(lái)緩解壓力的一種休閑方式。現(xiàn)如今社會(huì)生活緊張,人們對(duì)音樂(lè)的需求也在激增。互聯(lián)網(wǎng)上的音頻與視頻資源更是以爆發(fā)性的規(guī)模在增長(zhǎng)。因此音樂(lè)播放器自然也就是大家對(duì)智能手機(jī)比較關(guān)注的一個(gè)部分。設(shè)計(jì)出一款實(shí)用性高、界面簡(jiǎn)潔明了、易于操作、內(nèi)存占用較小的手機(jī)音樂(lè)播放器具有非常重要的現(xiàn)實(shí)意義[1]。
1 系統(tǒng)的分析和設(shè)計(jì)
1.1 需求分析
通過(guò)對(duì)音樂(lè)播放器的功能進(jìn)行分析,確定該系統(tǒng)的需求如下[2-3]:
(1)播放和暫停,用戶(hù)可以根據(jù)自身需要對(duì)音樂(lè)進(jìn)行播放和暫停操作。(2)上一首和下一首,用戶(hù)想換歌曲時(shí),可以通過(guò)點(diǎn)擊上/下一首按鈕來(lái)控制對(duì)音樂(lè)的切換操作。(3)播放模式選擇,用戶(hù)可以選擇單曲循環(huán)、隨機(jī)播放、全部播放等模式的操作。(4)播放進(jìn)度控制,用戶(hù)可以通過(guò)點(diǎn)擊或者拖動(dòng)音軌來(lái)控制音樂(lè)進(jìn)程,能夠?qū)⒁魳?lè)播放與音軌同步。(5)本地歌曲掃描,能夠掃描手機(jī)SD卡上的音頻文件,將獲得的歌曲添加到音樂(lè)列表中去。(6)在線搜索,可以通過(guò)互聯(lián)網(wǎng)提供的接口,搜索所需要的歌曲。(7)音量調(diào)節(jié),根據(jù)自身需要,可以調(diào)節(jié)音樂(lè)播放器的音量。(8)藝術(shù)家列表模塊,用戶(hù)能夠在該列表模塊查看到自己下載歌曲的藝術(shù)家姓名。(9)顯示歌詞,在播放音樂(lè)的同時(shí),能夠在界面上顯示所聽(tīng)音樂(lè)的歌詞,可以實(shí)現(xiàn)歌詞的展示與聲音文件播放的同步。
1.2 數(shù)據(jù)庫(kù)設(shè)計(jì)
通過(guò)對(duì)音樂(lè)播放器中的實(shí)體以及實(shí)體關(guān)系的分析,確定該系統(tǒng)的數(shù)據(jù)庫(kù)由4張表構(gòu)成,分別是user表,musictype表,music表,lyric表。
(1)用戶(hù)表(user):該表主要用于存儲(chǔ)用戶(hù)基本信息,包括用戶(hù)編號(hào)、用戶(hù)名、密碼、ip、注冊(cè)時(shí)間、狀態(tài)等字段。(2)歌曲類(lèi)型表(musictype):該表主要用于存儲(chǔ)歌曲的類(lèi)型,包括歌曲編號(hào)、類(lèi)型、所屬的專(zhuān)輯等信息。(3)歌曲表(music):該表主要用于存儲(chǔ)歌曲的基本信息,主要包括歌曲編號(hào)、歌曲名、路徑等信息。(4)歌詞表(lyric):該表主要用來(lái)存儲(chǔ)歌詞的基本信息,包括歌曲編號(hào)、歌曲標(biāo)題、作者、歌詞等字段。
2 系統(tǒng)實(shí)現(xiàn)
2.1 播放器主頁(yè)面
音樂(lè)播放器的主頁(yè)面對(duì)應(yīng)的類(lèi)為MainActivity。在該類(lèi)加載過(guò)程中首先執(zhí)行onCreate()方法,在該方法中調(diào)用setContentView()方法指定要展示的R.layout.main1文件。當(dāng)用戶(hù)點(diǎn)擊頁(yè)面的Button按鈕b1,觸發(fā)動(dòng)作事件Onclick,在該方法中頁(yè)面跳轉(zhuǎn)到App播放器的主頁(yè)中。在主頁(yè)中使用TabHost組件來(lái)實(shí)現(xiàn)導(dǎo)航欄布局切換頁(yè)面,導(dǎo)航分為3個(gè)模塊-音樂(lè)列表、藝術(shù)家列表、在線搜索。
2.2 音樂(lè)列表
音樂(lè)列表頁(yè)面所在的類(lèi)為L(zhǎng)istActivity類(lèi),在該類(lèi)首先執(zhí)行onCreate()方法加載layout布局下的listmusic.xml文件,顯示當(dāng)前的頁(yè)面。在該頁(yè)面中定義了一個(gè)listview集合,取得SD卡中能夠掃描的以mp3格式結(jié)尾的音樂(lè)文件,形成List
2.3 歌曲的播放與暫停
進(jìn)入該頁(yè)面,獲得imageBtnPlay按鈕對(duì)象,然后通過(guò)setOnClickListener(new MyListener())給該對(duì)象綁定一個(gè)動(dòng)作監(jiān)聽(tīng)器。當(dāng)點(diǎn)擊按鈕后觸發(fā)該事件,調(diào)用onStart()方法執(zhí)行音樂(lè)的播放與暫停功能。播放音樂(lè)首先獲得要播放的音樂(lè)的id,然后根據(jù)該id查找音樂(lè)。如果音樂(lè)查找到說(shuō)明該音樂(lè)文件存在,然后獲得該音樂(lè)的標(biāo)題、歌手、播放時(shí)間等信息,將當(dāng)前的狀態(tài)設(shè)置為play狀態(tài),調(diào)用startService()開(kāi)啟服務(wù)。
2.4 歌詞顯示
歌詞顯示功能是由SongsAcitivity類(lèi)來(lái)實(shí)現(xiàn)。在該頁(yè)面中加載layout布局下的songs.xml文件進(jìn)行展示。播放器在播放音樂(lè)的時(shí)候會(huì)顯示本地音樂(lè)的歌詞,首先播放器需要掃描本地的歌曲,然后對(duì)歌曲進(jìn)行初始化配置來(lái)匹配相應(yīng)的歌詞,這個(gè)界面使用了LinearLayout布局,運(yùn)用了playMusic()函數(shù)實(shí)現(xiàn)音樂(lè)歌詞的顯示。
2.5 在線搜索
在線搜索采用的是soso提供的音樂(lè)接口,實(shí)現(xiàn)的功能類(lèi)為WebSearch類(lèi)。首先獲得用戶(hù)輸入的關(guān)鍵字str,然后使用URLencoder類(lèi)中的encode()方法將該字符串的str對(duì)象編碼轉(zhuǎn)換為GBK格式,轉(zhuǎn)換成功之后啟動(dòng)線程。將請(qǐng)求的關(guān)鍵字封裝到Bundle對(duì)象中,然后通過(guò)getData()方法向給定的網(wǎng)絡(luò)地址發(fā)出查詢(xún)請(qǐng)求。
3 結(jié)語(yǔ)
本文主要研究基于Android操作系統(tǒng)下的音樂(lè)播放器的開(kāi)發(fā),采用了Eclipse、SDK、ADT、SQLite等相關(guān)工具和技術(shù),實(shí)現(xiàn)了一款界面友好,容易上手操作、功能實(shí)用的音樂(lè)播放器。該系統(tǒng)基本能滿(mǎn)足用戶(hù)對(duì)手機(jī)音樂(lè)播放的要求。
參考文獻(xiàn)
[1]鄧凡平.深入理解Android(卷1)[M].北京:機(jī)械工業(yè)出版社,2011.
[2]李寧.Android/iPhone開(kāi)發(fā)完全講義[M].北京:中國(guó)水利水電出版社,2010.
[3]劉瑾,詹玲超.基于Struts的音樂(lè)網(wǎng)站的設(shè)計(jì)與實(shí)現(xiàn)[J].數(shù)字技術(shù)與應(yīng)用,2016,(3):190-191.