[摘 要] 采用原型開發音樂播放器,根據它的特點可以運用Android XML構建表示層,提供友好的操作界面,使用輕量型SQlite進行數據庫關聯構建數據訪問層。使用fragment,bundle和activity進行業務邏輯層的構建,優化響應速度。將研究如何基于UI設計、SQLite構建同步在線音樂播放器,采用ADT-bundle開發環境,運用同步編解碼等技術,實現在線音頻實時播放。
[關 鍵 詞] 音樂播放器;安卓APP設計;開發環境
[中圖分類號] G644 [文獻標志碼] A [文章編號] 2096-0603(2016)13-0089-01
一、播放器采用的主要技術
(一)界面UI
合理利用其他平臺上的UI設計進行UI優化,在品牌顯示和平臺整體觀感之間做好平衡。適當使用模態進度條和確認對話框,在操作上給予更好的體驗。圖標設計要遵循Android的準則,使用適當的間距,要支持D-pad和trackball導航,要正確管理活動(activity)棧,要正確處理屏幕方向變化,要使用主題/樣式、尺寸和顏色資源來減少界面冗余。次要功能可以放到菜單里面,給予用戶適當的回饋。
(二)SQLite數據庫
SQLite是遵守ACID的關系數據庫管理系統,它包含在一個相對小的C庫中。它是D.RichardHipp創建的公有領域項目。不像常見的客戶端/服務器結構范例,SQLite引擎不是個程序與之通信的獨立進程,而是連接到程序中成為它的一個主要部分。所以主要的通信協議是在編程語言內的直接API調用。
二、播放器的設計
(一)播放器體系結構
在線音樂播放器采用基于SQllite技術的MVC的設計模式,將播放器APP劃分為三層結構,從上至下分為:
1.表示層:主要采用UI界面操作,增強用戶的體驗。
2.業務邏輯層:專門處理系統業務需求的一層,處于數據訪問層之上,表示層之下。系統中服務端和客戶端均包含有業務邏輯層,最終通過服務端的數據訪問層對數據庫進行操作。
3.數據訪問層:主要負責數據庫的訪問,為業務邏輯層提供數據庫鏈接和操作服務。
(二)音樂播放器的系統流程和功能結構圖設計
主界面顯示選擇列表和播放器,側滑顯示功能列表。在選擇列表里有我的音樂、我的最愛、文件夾、歌手、專輯。進入我的音樂有歌曲列表和搜索,歌曲列表可進入播放器,播放器又可進入歌曲列表和功能列表。我的最愛、文件夾、歌手、專輯和我的音樂操作相同。在我的最愛的歌曲列表中可返回我的音樂中歌曲列表,在文件夾的文件夾列表可返回我的音樂中歌曲列表,歌手的歌手列表可返回我的音樂中歌曲列表,專輯的專輯列表可返回我的音樂中歌曲列表,功能列表平等地控制掃描歌曲、播放模式、換背景、睡眠設置、退出。
(三)功能模塊說明
功能主要包括實時緩存播放管理、掃描操作管理、定時睡眠管理、甩歌功能管理、離線本地操作管理。下面分別介紹這5大模塊:(1)實時緩存播放管理包括下載、播放、切換、瀏覽;(2)掃描操作管理包括全機掃描、文件掃描;(3)定時睡眠管理包括倒計時關閉軟件;(4)歌功能管理包括手機甩動切歌;(5)離線本地操作管理包括設置軟件、換膚、播放、收藏、列表。
(四)APP界面設計
根據UI設計的方式,使用創建uimanager包,新建9個類:AlbumBrowserManager專輯列表;artistBrowserManager歌手列表;folderBrowserManager文件夾列表;mainbottomUIBrowserManager我的音樂底部View控制;my music BrowserManager我的音樂;mymusicUIBrowserManager處理歌曲列表頁中的UI元素,包括底部view,SlidingDrawer等;slidingDrawerManager底部彈出的歌詞界面控制;UI Manager動態生成view并通過ViewPager來顯示。使用fragment進行布局,比activity速度快。Mainfragment首頁內容和幾大模塊及嵌套的兩層ViewPager,MenuFragment側滑Menu軟件的設置,歌曲的控制等幾大功能。
(五)數據庫設計
根據播放器的功能需求,共設計5張表(list):(1)AlbumInfodao:保存專輯信息;(2)ArtistInfoDao:保存歌手信息;(3)favoriteInfoDao:保存收藏信息;(4)folderInfoDao:保存文件信息;(5)music InfoDao:保存音樂信息。
(六)數據傳輸設計
創建AudioRecord和AudioTrack類對象。就能實現了雙方數據的傳送。然后在主程序中,通過MENU控制通話的開始、停止、結束。
參考文獻:
張孝祥.Java就業培訓教程[M].北京:清華大學出版社,2007.