錢(qián)甜
(西安航空職業(yè)技術(shù)學(xué)院 大學(xué)生藝術(shù)教育中心, 西安 710089)
隨著移動(dòng)互聯(lián)網(wǎng)的快速發(fā)展,人們的精神生活也逐漸向移動(dòng)互聯(lián)網(wǎng)轉(zhuǎn)移,移動(dòng)應(yīng)用已經(jīng)逐漸占領(lǐng)了人們的日常生活,音樂(lè),已經(jīng)成為大部分人生活中不可缺少的一部分,移動(dòng)互聯(lián)網(wǎng)使音樂(lè)從PC機(jī)轉(zhuǎn)移到手機(jī)或平板電腦上,數(shù)字音樂(lè)的出現(xiàn)也順應(yīng)了網(wǎng)絡(luò)發(fā)展的趨勢(shì)[1],充分的解決了音樂(lè)播放空間的局限性,所以構(gòu)建簡(jiǎn)潔易用的在線音樂(lè)客戶端有利于人們對(duì)音樂(lè)的追求,為音樂(lè)提供了良好的展示平臺(tái)。
滿足用戶體驗(yàn)需求與功能設(shè)計(jì)需求。
(1) 友好界面,客戶端的展示界面要直觀簡(jiǎn)潔,易于操作。
(2) 響應(yīng)迅速,對(duì)用戶的請(qǐng)求快速處理。
(3) 無(wú)縫銜接,在運(yùn)用到Android系統(tǒng)上時(shí),程序運(yùn)行的過(guò)程中要對(duì)電話、短信等程序的產(chǎn)生做好處理,程序切換要做到無(wú)縫對(duì)接。
在線音樂(lè)客戶端功能設(shè)計(jì)框架,如圖1所示。
(1) 歌曲的播放及控制
該系統(tǒng)的設(shè)計(jì)是控制音樂(lè)的播放,對(duì)歌曲控制開(kāi)始和暫停,上下首播放歌曲進(jìn)行控制。為歌曲的播放設(shè)置不同的播放模式。
圖1 在線音樂(lè)客戶端功能架構(gòu)圖
(2) 歌曲下載以及列表管理
音樂(lè)播放器要能夠按照用戶的需求對(duì)歌曲文件以及列表進(jìn)行掃描,提供對(duì)各種列表進(jìn)行管理的功能。
(3) 歌詞控制以及圖片顯示
正在播放的歌曲要提供相應(yīng)的歌詞,并且對(duì)歌詞進(jìn)行調(diào)整,針對(duì)不同的歌曲要顯示相關(guān)的專(zhuān)輯圖片。
(4) 歌曲、歌詞搜索
根據(jù)客戶的需求對(duì)所需的歌曲、歌詞以及相關(guān)圖片進(jìn)行搜索,對(duì)所獲資源進(jìn)行存儲(chǔ)與展示。
(5) 個(gè)性設(shè)置
可以對(duì)播放器背景皮膚進(jìn)行更改。
本文所設(shè)計(jì)的音樂(lè)在線客戶端對(duì)軟硬件的需求并不高,可以滿足任何智能手機(jī)。Android在系統(tǒng)中集成了多媒體框架,可以通過(guò)此特性快速的開(kāi)發(fā)屬于自己的多媒體應(yīng)用。Android操作系統(tǒng)自誕生以來(lái),始終是開(kāi)源的,所以不存在額外的成本與法律風(fēng)險(xiǎn),該客戶端可以直接在開(kāi)發(fā)客戶端進(jìn)行下載。
在線音樂(lè)系統(tǒng)主要通過(guò)數(shù)據(jù)存儲(chǔ)模塊、網(wǎng)絡(luò)連接模塊、歌曲播放模塊以及歌曲下載模塊對(duì)系統(tǒng)進(jìn)行設(shè)計(jì)與實(shí)現(xiàn)。整體框架如圖2所示。
此模塊主要是提供數(shù)據(jù)資源,根據(jù)不同的需求,會(huì)將系統(tǒng)中的數(shù)據(jù)轉(zhuǎn)變?yōu)椴煌姆绞竭M(jìn)行存儲(chǔ)。
2.1.1 歌曲信息存儲(chǔ)
一般情況下,歌曲在系統(tǒng)中主要以文件的形式進(jìn)行存儲(chǔ)。在該系統(tǒng)中,主要以SQLite數(shù)據(jù)庫(kù)的形式進(jìn)行存儲(chǔ),在SQLite中,每一個(gè)表都會(huì)對(duì)應(yīng)相應(yīng)的歌曲信息。
歌曲的相關(guān)信息主要包括:歌曲名、歌手名、專(zhuān)輯名、文件格式、播放時(shí)長(zhǎng)、文件大小、相關(guān)圖片存儲(chǔ)路徑等等。這些信息都會(huì)按照調(diào)用頻率被分割在數(shù)據(jù)表中[2]。具體的數(shù)據(jù)表設(shè)計(jì)如表1所示。
表1 分割數(shù)據(jù)表
在本次設(shè)計(jì)中,對(duì)數(shù)據(jù)庫(kù)的操作接口進(jìn)行了封裝,并且針對(duì)客戶的實(shí)際需求,提供了數(shù)據(jù)查找、修改以及增刪的功能[3]。
2.1.2 配置信息的存儲(chǔ)
本次所設(shè)計(jì)的音樂(lè)系統(tǒng)信息設(shè)置主要有耳機(jī)設(shè)置、一般設(shè)置、歌詞圖片設(shè)置、音樂(lè)云設(shè)置、其他設(shè)置。具體介紹如表2所示。
網(wǎng)絡(luò)連接模塊是在線音樂(lè)系統(tǒng)的主要模塊。主要功能是客戶端和服務(wù)器的連接??蛻舳嗽诰W(wǎng)絡(luò)環(huán)境下在服務(wù)器上獲得資源,有支持歌曲、歌詞下載,歌曲識(shí)別等多種功能,網(wǎng)絡(luò)連接模塊的設(shè)計(jì)會(huì)針對(duì)不同的需求,提供不同的接口。
表2 系統(tǒng)設(shè)置信息表
該模塊屬于在線音樂(lè)客戶端的核心模塊,用戶使用最多的模塊便是歌曲播放模塊。通過(guò)該模塊可以實(shí)現(xiàn)對(duì)歌曲播放任務(wù)的控制,對(duì)播放列表選取上下首、暫停、播放控制。
2.3.1 歌曲播放模塊設(shè)計(jì)
歌曲播放在后臺(tái)運(yùn)行,通過(guò)這方面來(lái)看,與Service組件的效果很接近,所以,對(duì)歌曲播放模塊來(lái)講,可以設(shè)計(jì)為一個(gè)Service。用戶可以通過(guò)手機(jī)的HOME鍵退出應(yīng)用程序,這些操作都不會(huì)對(duì)音樂(lè)的播放造成影響。播放控制的入口操作主要為歌曲項(xiàng)的點(diǎn)擊播放,播放控制與用戶操作關(guān)系流程如圖3所示。
圖3 播放控制流程
此音樂(lè)系統(tǒng)支持mp3等音頻播放,支持播放手機(jī)終端。本系統(tǒng)需要對(duì)本地以及網(wǎng)絡(luò)的各種輸入流的差異性進(jìn)行屏蔽,對(duì)不同輸入流提供統(tǒng)一接口。
2.3.2 正在播放場(chǎng)景實(shí)現(xiàn)
正在播放場(chǎng)景可以為歌曲提供展示界面,主要包括歌曲歌詞以及相關(guān)的圖片,該用戶界面是用戶控制的界面[4]。場(chǎng)景界面布局設(shè)計(jì)如圖4所示。
圖4 播放場(chǎng)景界面
該模式的應(yīng)用具有一定的普遍性,有播放及音量調(diào)整按鈕,歌曲標(biāo)題及歌詞顯示。控制欄在界面底部??刂茩谏戏綖楦柙~。
2.4.1 下載模塊設(shè)計(jì)
為了實(shí)現(xiàn)網(wǎng)絡(luò)歌曲的下載,該客戶端在網(wǎng)絡(luò)曲庫(kù)中提供了大量資源,系統(tǒng)提供網(wǎng)絡(luò)搜索功能,用戶可以將喜歡的歌曲添加到下載列表中。系統(tǒng)通過(guò)下載管理界面,對(duì)歌曲的下載任務(wù)進(jìn)行管理??梢栽凇罢谙螺d”的頁(yè)面中對(duì)下載任務(wù)進(jìn)行暫?;騽h除,可以在“下載完成”頁(yè)面中進(jìn)行歌曲播放、移出等操作。目前的手機(jī)終端已經(jīng)進(jìn)入了智能化階段,該系統(tǒng)中,每次僅允許對(duì)一個(gè)任務(wù)進(jìn)行下載,一個(gè)任務(wù)下載完成之后,自動(dòng)繼續(xù)下一個(gè)任務(wù)。受到這種策略的影響,“正在下載”的任務(wù)就會(huì)存在就緒、下載、暫停三種狀態(tài)。除了用戶明確指定啟動(dòng)或暫停某個(gè)任務(wù),當(dāng)有任務(wù)正在進(jìn)行時(shí),無(wú)論當(dāng)前的下載任務(wù)被移除或者已經(jīng)下載完成,系統(tǒng)都會(huì)自動(dòng)開(kāi)始下一任務(wù)的開(kāi)始。
2.4.2 下載管理實(shí)現(xiàn)
在線音樂(lè)系統(tǒng)的下載管理模塊實(shí)現(xiàn),主要通過(guò)一個(gè)DownloadProvider的類(lèi)以及相關(guān)的輔助類(lèi)進(jìn)行實(shí)現(xiàn)。根據(jù)不同用戶的需求進(jìn)行相對(duì)應(yīng)的相應(yīng),并且可以通知前端下載管理頁(yè)面進(jìn)行更新。在底層網(wǎng)絡(luò)連接模塊中要為DownloadProvider提供網(wǎng)絡(luò)資源,設(shè)計(jì)用于網(wǎng)絡(luò)資源請(qǐng)求的接口。
在線音樂(lè)客戶端在音樂(lè)播放的過(guò)程中,歌曲文件已經(jīng)還沖到本地,已經(jīng)緩沖的本地文件是可以利用的,在底層的網(wǎng)絡(luò)連接模塊中為歌曲文件的下載提供斷點(diǎn)續(xù)傳功能。在歌曲緩沖或者下載完成之后,程序會(huì)進(jìn)行相應(yīng)的操作,保證文件按照正常的音頻格式進(jìn)行存儲(chǔ)[5]。添加新下載任務(wù)的流程如圖5所示。
2.4.3 下載界面設(shè)計(jì)
在下載管理界面中,主要由正在下載與下載完成兩個(gè)列表組成,通過(guò)這兩個(gè)列表可以對(duì)歌曲的下載任務(wù)進(jìn)行管理。在正在下載任務(wù)項(xiàng)中,會(huì)給用戶展示任務(wù)的下載進(jìn)程,包括下載進(jìn)度、歌曲名以及相關(guān)信息。下載完成任務(wù)項(xiàng)會(huì)包含歌曲所在列表的索引、播放、暫停狀態(tài)以及歌曲的相關(guān)信息等。
該測(cè)驗(yàn)主要是針對(duì)MP3解碼播放的測(cè)試,可以實(shí)現(xiàn)MP3格式音樂(lè)文件的解碼播放,使系統(tǒng)的播放功能更加全面,對(duì)播放流程也有所控制,而且為系統(tǒng)提供了更好的擴(kuò)展性能。對(duì)于MP3解碼播放功能的測(cè)試,主要可以通過(guò)以下幾方面來(lái)進(jìn)行:
圖5 添加下載任務(wù)流程
(1) 對(duì)播放穩(wěn)定性的測(cè)試:在Android設(shè)備中,確保電源充足的前提下,長(zhǎng)時(shí)間的播放MP3格式歌曲,體驗(yàn)歌曲播放的質(zhì)量。在中興X876手機(jī)上,對(duì)不同來(lái)源的100首MP3歌曲進(jìn)行循環(huán)播放。只有兩首出現(xiàn)破音情況,主要原因是解碼播放模塊所獲取的比特率不準(zhǔn)確。測(cè)試的整體效果能夠達(dá)到預(yù)期的要求。
(2) 資源消耗測(cè)試:在同一設(shè)備中,分別通過(guò)系統(tǒng)解碼器和自己實(shí)現(xiàn)的解碼器對(duì)MP3歌曲進(jìn)行播放,觀察兩者資源的消耗情況。在中興X876手機(jī)上,將其他程序關(guān)閉,采用自己實(shí)現(xiàn)的解碼器,CPU的使用率在20%。而采用系統(tǒng)解碼器CPU使用率在15%。所以,該解碼播放模塊比較符合消耗標(biāo)準(zhǔn)。
(3) 兼容性測(cè)試:在不同的硬件條件下,程序使用自己實(shí)現(xiàn)的解碼播放模塊的系統(tǒng)消耗與整體的運(yùn)行情況相比較。將該音樂(lè)客戶端運(yùn)行于不同的Android設(shè)備上,該音樂(lè)客戶端表現(xiàn)的都很順暢,在配置相對(duì)較低的手機(jī)上,CPU的占用率會(huì)偏高,但是不影響正常使用。
結(jié)束語(yǔ):本文主要對(duì)在線音樂(lè)客戶端進(jìn)行設(shè)計(jì),針對(duì)數(shù)據(jù)存儲(chǔ)、網(wǎng)絡(luò)連接、歌曲播放以及下載等模塊具體分析?;灸軌?qū)崿F(xiàn)應(yīng)用的具體需求,但是仍然存在一些不足,例如:產(chǎn)品的展示主要依賴列表的形式,頁(yè)面組織比較單調(diào);在解碼播放模塊中,僅實(shí)現(xiàn)了MP3格式文件的解碼播放。在后續(xù)的研究中,需要對(duì)該系統(tǒng)進(jìn)行進(jìn)一步拓展與完善。