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