張馨元
【摘 要】針對當前智能手機終端和4G網絡的不斷普及,本文提出了一種基于Android的音樂圖片播放系統(tǒng),并對系統(tǒng)的體系結構、關鍵技術進行了分析。最后,通過對系統(tǒng)進行實地測試,證明了該系統(tǒng)通過手機APP能夠較好在基于Android的移動設備上進行添加圖片和音樂的功能。
【關鍵詞】Android;音樂;圖片;JAVA
中圖分類號: TP 393 文獻標識碼: A 文章編號: 2095-2457(2019)01-0217-003
現今社會生活緊張,而欣賞音樂是其中最好的舒緩壓力的方式之一,隨著手機市場的迅速發(fā)展,各種音頻資源[1]也在網上廣為流傳,通過手機音樂播放器放松心情已經漸漸成為人們生活中必不可少的一部分了。不少人在購買手機的時候都會關心手機的音樂播放[2]的能力,這也足以看出目前大家對音樂播放功能的重視,所以一款性能良好的手機音樂播放器軟件一定會受到歡迎。
音視頻播放器[3]研究的目的就是為了滿足用戶的精神生活需要,而開發(fā)的一款基于Android[4]平臺的便于人們使用的音、視頻播放器[5],通過在移動端使用播放器[6],播放音樂或視頻文件,給用戶帶來藝術體驗,最終達到緩解用戶壓力的目的。但目前市面上用戶使用的主流播放器還存在著一些弊端[7],例如:所需要占用的內存過大、外觀花哨不實用、播放時損耗流量過多、軟件捆綁過于嚴重[8]、操作過于繁瑣不適合老年和兒童使用、音樂播放和視頻播放之間的切換過于繁瑣,等等。這些情況嚴重影響了用戶的良好體驗和個人權益,針對以上各種弊端,將各項性能進行優(yōu)化,同時簡化界面操作,設計一款基于Android手機平臺的音視頻播放器。利用音頻和圖片可以在同一個APP中播放的特點,更好地提升用戶的體驗。手機上裝有一個靈巧的音視頻播放器,用戶的操作將更加便捷。
1 系統(tǒng)總體設計
音樂圖片播放系統(tǒng)包括程序入口界面、主界面、添加界面、播放界面。如圖1所示。
1.1 系統(tǒng)需求分析
音樂圖片播放系統(tǒng)實現圖片音樂的點播和圖片的定制顯示??捎糜谏虉?、銀行、電梯等公共場所的廣告及宣傳板、家庭電子相框。硬件系統(tǒng)要求支持安卓操作系統(tǒng)[9]。
具有較靈活的設置功能,通過選取下載到本地的圖片和音樂進行組合,完成本地配置功能。
具有開機自啟動功能,無需干預即可實現顯示。
1.2 數據邏輯模型
音樂圖片播放系統(tǒng)的E-R圖如圖2所示。
如圖所示,本系統(tǒng)內總共有用戶、配置信息和音樂圖片這三大主體。其中,用戶可以配置音樂和圖片、顯示圖片音樂信息供選擇、播放指定的音樂和圖片。配置信息含有音樂和圖片的存儲路徑及輔助信息。音樂和圖片是指存儲在本地的音樂文件和圖片文件。
音樂圖片廣告系統(tǒng)首先要解決數據存儲問題,數據應以記錄形式存放,記錄音樂和圖片的配置關系。采用SharedPreferences保存數據在music.xml中,記錄和記錄以%間隔。
音樂圖片廣告系統(tǒng)需要解決畫面切換后,當前播放內容的傳遞的問題,要讓播放模塊知道當前需要播放的是那一條記錄對應的歌曲和圖片。設計中給每條記錄設置了序號。本系統(tǒng)通過意圖(intent)在activity見傳遞記錄序號。
2 系統(tǒng)詳細設計及方案
下面將分別實現各個模塊的設計,由于涉及的模塊較多,這里列出主要模塊的設計實現。
2.1 程序入口模塊
實現功能:顯示歡迎頁面,顯示重要提示,停留2000ms,進入主界面。
實現過程:調轉至主界面MainActivity,當主界面退回時結束,activity生命周期結束,主要技術點是:
(1)界面切換技術,啟動同一應用的activity,使用顯式啟動方式,顯式的效率高于隱式。歡迎頁面切入主界面采用了顯式啟動。而系統(tǒng)啟動該系統(tǒng)時通過隱式方式進行。
(2)運用Activity生命周期的特點,選擇主界面退出后退出程序。
2.2 主界面模塊MainActivity
顯示音樂配置歷史記錄,供添加和選擇播放,類MainActivity繼承Activity的子類AppCompatActivity。根據Activity生命周期,activity一開始創(chuàng)建的時候執(zhí)行onCreate(),在該方法中完成布局的設置及初始化,數據的初始化。技術要點如下:
使用RecyclerView (一個增強版的ListView)顯示音樂名稱,不僅可以實現和ListView同樣的效果,還優(yōu)化了ListView中存在的各種不足之處。
通過點擊‘+,進入設置界面。
通過點擊 明細條目,進入播放界面。
2.3 添加音樂及圖片界面模塊
實現功能:通過選擇圖片和音樂,提交后記錄在SharedPreferences文件中。
實現過程:(1)點擊選擇音樂控件,添加音樂畫面。使用隱式意圖startActivityForResult,查找本地所有的音頻文件。用Activity Action里的“ACTION_GET_CONTENT”字符串常量,選擇“audio/*”類型的數據,并返回該數據的URI.,就可獲得android系統(tǒng)中的所有audio。(2)點擊選擇圖片控件,添加圖片畫面。使用隱式意圖startActivityForResult,查找本地所有的圖片文件。用Activity Action里的“ACTION_PICK”字符串常量,選擇“image/*”類型的數據,并返回該數據的URI.,就可獲得android系統(tǒng)中的所有image。(3)點擊‘提交控件,提交處理。檢查音樂和圖片是否選擇,如果未選擇,則提示選擇;如果已選擇,從SharedPreferences文件music.xml讀出配置串,與現有選擇的配置拼裝在一起,更新SharedPreferences文件,提示‘提交成功,結束本activity,finish()。
2.4 播放界面模塊
實現功能:完成指定音樂和圖片的顯示:
1)音樂可以向前播放,向后播放,和暫停播放。
2)同時顯示圖片。
實現過程:(1)設置‘<點擊事件偵聽,一旦點擊,本activity結束finish()
(2)設置‘Play_Pre向前、‘Play播放(暫停)點擊事件偵聽‘Play_next向后播放點擊事件偵聽
(3)點擊事件處理:更新播放數據data、播放、同時顯示圖片
(4)在活動結束時停止播放音樂。
2.5 音樂播放器模塊
實現功能:完成指定音樂的播放:(1)對MediaPlayer進行客戶化,使其能夠播放音樂。(2)計算進度條位置。
實現過程:
1)創(chuàng)建MediaPlayer對象
2)設置聲音源
3)參數設置
4)MediaPlayer播放音頻
(1)準備:同步準備prepare(),在調用prepare()方法后調用setOnPreparedListener()方法進行準備監(jiān)聽,在此監(jiān)聽中調用start()方法進行播放。
(2)暫停與停止
pause():暫停音樂播放
stop():停止音樂播放
reset():重置當前音樂
(3)進度條實時顯示播放進度
首先應該在布局文件中SeekBar,在Activity中進行初始化。
使用定時器來定時更新進度。
定時器的代碼應該在mMediaPlayer.setOnPreparedListener()中調用[10]。當其開始播放時開啟這個定時任務,并調用seekBar.setMax(mp.getDuration());來設置進度條的最大時間,其中mp.getDuration()是獲取當前播放文件的總長度。
停止播放或者結束播放時,調用mTimer.cancel();來關閉定時器。
3 系統(tǒng)測試
3.1 開發(fā)環(huán)境和工具
開發(fā)工具為:Eclipse Standard Luna 4.4.2
Java SDK版本:1.7.0_75
Android studio版本:2.3.1 API 28
AndroidManifest:minSdkVersion=17,targetSdkVersion=23
Project.properties:target=android-23
系統(tǒng)測試主要是對軟件各個功能的黑盒類測試,覆蓋系統(tǒng)所有聯(lián)合的部件。系統(tǒng)測試是針對整app系統(tǒng)進行的測試,目的是驗證系統(tǒng)是否滿足了需求規(guī)格的定義,找出與需求規(guī)格不相符合或與之矛盾的地方。
系統(tǒng)測試的對象不僅僅包括需要測試的APP系統(tǒng)的軟件,還要包含其所依賴的硬件、外設甚至包括某些數據、某些支持軟件及其接口等。因此,必須將系統(tǒng)中的軟件與各種依賴的資源結合起來,在系統(tǒng)實際運行環(huán)境下來進行測試。測試中發(fā)現的bug以及修復方法如下表所示:
所測試項目均符合預期目標,并且APP在運行過程中并未出現任何異常。添加音樂和圖片界面(a)及播放界面(b)測試如圖3所示。
4 結束語
音樂播放器需要一個簡潔、漂亮的界面,給使用者以更好地用戶體驗,還要求從播放器的功能性入手,保證該音樂播放器能夠在android的技術框架下,實現功能的全面性和兼容性。本系統(tǒng)經過了需求分析、設計以及測試,在安卓手機上實現了播放器的功能且運行流暢。經用戶的體驗證實,該音、視頻播放器操作簡單、使用方便且不占用過多的內存。音視頻播放器系統(tǒng)實現了播放器的基本功能
【參考文獻】
[1]蔣斌.某數字音樂開放平臺的設計與實現[D].中國科學院大學,2015.
[2]擺云.基于Android開放平臺和無線通信網絡的實時音視頻傳輸系統(tǒng)設計與實現[D].蘭州大學,2012.
[3]李玲玲.基于Android平臺在線音樂播放器的研究與實現[D].安徽理工大學,2012.
[4]周雅翠.基于Android平臺的個人事務管理系統(tǒng)設計[J].吉林建筑大學學報,2015(6):67-68.
[5]馬建設,趙雪江,蘇萍,夏飛鵬.基于Android系統(tǒng)的視頻播放器開發(fā)[J].計算機應用與軟件,2013(11):69-71.
[6]陳寬宜.基于Android平臺在線音樂播放器的研究與實現[D].中國科學院大學,2013.
[7]鄧昌友,肖遙,馬小月.基于Android智能手機數據安全的研究[J].福建電腦,2015(12):5-6.
[8]王毅.Android平臺并行計算研究[J].電子制作,2015(24):26-27.
[9]吳新華,萬強.基于Android平臺的手機游戲開發(fā)[J].萍鄉(xiāng)學院學報,2015(6):66-69.
[10]董濤,李隱峰,范星光.基于Android的移動校園客戶端的研究與實現[J].電子科技,2014(12):4-5.