錢甜
(西安航空職業技術學院 大學生藝術教育中心, 西安 710089)
隨著移動互聯網的快速發展,人們的精神生活也逐漸向移動互聯網轉移,移動應用已經逐漸占領了人們的日常生活,音樂,已經成為大部分人生活中不可缺少的一部分,移動互聯網使音樂從PC機轉移到手機或平板電腦上,數字音樂的出現也順應了網絡發展的趨勢[1],充分的解決了音樂播放空間的局限性,所以構建簡潔易用的在線音樂客戶端有利于人們對音樂的追求,為音樂提供了良好的展示平臺。
滿足用戶體驗需求與功能設計需求。
(1) 友好界面,客戶端的展示界面要直觀簡潔,易于操作。
(2) 響應迅速,對用戶的請求快速處理。
(3) 無縫銜接,在運用到Android系統上時,程序運行的過程中要對電話、短信等程序的產生做好處理,程序切換要做到無縫對接。
在線音樂客戶端功能設計框架,如圖1所示。
(1) 歌曲的播放及控制
該系統的設計是控制音樂的播放,對歌曲控制開始和暫停,上下首播放歌曲進行控制。為歌曲的播放設置不同的播放模式。

圖1 在線音樂客戶端功能架構圖
(2) 歌曲下載以及列表管理
音樂播放器要能夠按照用戶的需求對歌曲文件以及列表進行掃描,提供對各種列表進行管理的功能。
(3) 歌詞控制以及圖片顯示
正在播放的歌曲要提供相應的歌詞,并且對歌詞進行調整,針對不同的歌曲要顯示相關的專輯圖片。
(4) 歌曲、歌詞搜索
根據客戶的需求對所需的歌曲、歌詞以及相關圖片進行搜索,對所獲資源進行存儲與展示。
(5) 個性設置
可以對播放器背景皮膚進行更改。
本文所設計的音樂在線客戶端對軟硬件的需求并不高,可以滿足任何智能手機。Android在系統中集成了多媒體框架,可以通過此特性快速的開發屬于自己的多媒體應用。Android操作系統自誕生以來,始終是開源的,所以不存在額外的成本與法律風險,該客戶端可以直接在開發客戶端進行下載。
在線音樂系統主要通過數據存儲模塊、網絡連接模塊、歌曲播放模塊以及歌曲下載模塊對系統進行設計與實現。整體框架如圖2所示。
此模塊主要是提供數據資源,根據不同的需求,會將系統中的數據轉變為不同的方式進行存儲。
2.1.1 歌曲信息存儲
一般情況下,歌曲在系統中主要以文件的形式進行存儲。在該系統中,主要以SQLite數據庫的形式進行存儲,在SQLite中,每一個表都會對應相應的歌曲信息。
歌曲的相關信息主要包括:歌曲名、歌手名、專輯名、文件格式、播放時長、文件大小、相關圖片存儲路徑等等。這些信息都會按照調用頻率被分割在數據表中[2]。具體的數據表設計如表1所示。

表1 分割數據表
在本次設計中,對數據庫的操作接口進行了封裝,并且針對客戶的實際需求,提供了數據查找、修改以及增刪的功能[3]。
2.1.2 配置信息的存儲
本次所設計的音樂系統信息設置主要有耳機設置、一般設置、歌詞圖片設置、音樂云設置、其他設置。具體介紹如表2所示。
網絡連接模塊是在線音樂系統的主要模塊。主要功能是客戶端和服務器的連接??蛻舳嗽诰W絡環境下在服務器上獲得資源,有支持歌曲、歌詞下載,歌曲識別等多種功能,網絡連接模塊的設計會針對不同的需求,提供不同的接口。

表2 系統設置信息表
該模塊屬于在線音樂客戶端的核心模塊,用戶使用最多的模塊便是歌曲播放模塊。通過該模塊可以實現對歌曲播放任務的控制,對播放列表選取上下首、暫停、播放控制。
2.3.1 歌曲播放模塊設計
歌曲播放在后臺運行,通過這方面來看,與Service組件的效果很接近,所以,對歌曲播放模塊來講,可以設計為一個Service。用戶可以通過手機的HOME鍵退出應用程序,這些操作都不會對音樂的播放造成影響。播放控制的入口操作主要為歌曲項的點擊播放,播放控制與用戶操作關系流程如圖3所示。

圖3 播放控制流程
此音樂系統支持mp3等音頻播放,支持播放手機終端。本系統需要對本地以及網絡的各種輸入流的差異性進行屏蔽,對不同輸入流提供統一接口。
2.3.2 正在播放場景實現
正在播放場景可以為歌曲提供展示界面,主要包括歌曲歌詞以及相關的圖片,該用戶界面是用戶控制的界面[4]。場景界面布局設計如圖4所示。

圖4 播放場景界面
該模式的應用具有一定的普遍性,有播放及音量調整按鈕,歌曲標題及歌詞顯示。控制欄在界面底部??刂茩谏戏綖楦柙~。
2.4.1 下載模塊設計
為了實現網絡歌曲的下載,該客戶端在網絡曲庫中提供了大量資源,系統提供網絡搜索功能,用戶可以將喜歡的歌曲添加到下載列表中。系統通過下載管理界面,對歌曲的下載任務進行管理。可以在“正在下載”的頁面中對下載任務進行暫?;騽h除,可以在“下載完成”頁面中進行歌曲播放、移出等操作。目前的手機終端已經進入了智能化階段,該系統中,每次僅允許對一個任務進行下載,一個任務下載完成之后,自動繼續下一個任務。受到這種策略的影響,“正在下載”的任務就會存在就緒、下載、暫停三種狀態。除了用戶明確指定啟動或暫停某個任務,當有任務正在進行時,無論當前的下載任務被移除或者已經下載完成,系統都會自動開始下一任務的開始。
2.4.2 下載管理實現
在線音樂系統的下載管理模塊實現,主要通過一個DownloadProvider的類以及相關的輔助類進行實現。根據不同用戶的需求進行相對應的相應,并且可以通知前端下載管理頁面進行更新。在底層網絡連接模塊中要為DownloadProvider提供網絡資源,設計用于網絡資源請求的接口。
在線音樂客戶端在音樂播放的過程中,歌曲文件已經還沖到本地,已經緩沖的本地文件是可以利用的,在底層的網絡連接模塊中為歌曲文件的下載提供斷點續傳功能。在歌曲緩沖或者下載完成之后,程序會進行相應的操作,保證文件按照正常的音頻格式進行存儲[5]。添加新下載任務的流程如圖5所示。
2.4.3 下載界面設計
在下載管理界面中,主要由正在下載與下載完成兩個列表組成,通過這兩個列表可以對歌曲的下載任務進行管理。在正在下載任務項中,會給用戶展示任務的下載進程,包括下載進度、歌曲名以及相關信息。下載完成任務項會包含歌曲所在列表的索引、播放、暫停狀態以及歌曲的相關信息等。
該測驗主要是針對MP3解碼播放的測試,可以實現MP3格式音樂文件的解碼播放,使系統的播放功能更加全面,對播放流程也有所控制,而且為系統提供了更好的擴展性能。對于MP3解碼播放功能的測試,主要可以通過以下幾方面來進行:

圖5 添加下載任務流程
(1) 對播放穩定性的測試:在Android設備中,確保電源充足的前提下,長時間的播放MP3格式歌曲,體驗歌曲播放的質量。在中興X876手機上,對不同來源的100首MP3歌曲進行循環播放。只有兩首出現破音情況,主要原因是解碼播放模塊所獲取的比特率不準確。測試的整體效果能夠達到預期的要求。
(2) 資源消耗測試:在同一設備中,分別通過系統解碼器和自己實現的解碼器對MP3歌曲進行播放,觀察兩者資源的消耗情況。在中興X876手機上,將其他程序關閉,采用自己實現的解碼器,CPU的使用率在20%。而采用系統解碼器CPU使用率在15%。所以,該解碼播放模塊比較符合消耗標準。
(3) 兼容性測試:在不同的硬件條件下,程序使用自己實現的解碼播放模塊的系統消耗與整體的運行情況相比較。將該音樂客戶端運行于不同的Android設備上,該音樂客戶端表現的都很順暢,在配置相對較低的手機上,CPU的占用率會偏高,但是不影響正常使用。
結束語:本文主要對在線音樂客戶端進行設計,針對數據存儲、網絡連接、歌曲播放以及下載等模塊具體分析?;灸軌驅崿F應用的具體需求,但是仍然存在一些不足,例如:產品的展示主要依賴列表的形式,頁面組織比較單調;在解碼播放模塊中,僅實現了MP3格式文件的解碼播放。在后續的研究中,需要對該系統進行進一步拓展與完善。