洪麗華?王茂昌
摘 要:音樂播放器在人們的生活、學(xué)習(xí)、研究等方面起著越來越重要的作用,本文主要研究基于Android系統(tǒng)的音樂播放器的設(shè)計(jì)與實(shí)現(xiàn),從設(shè)計(jì)、功能、編碼、測(cè)試等方面進(jìn)行論述。
關(guān)鍵詞:Java;Android系統(tǒng);音樂播放器。
基金項(xiàng)目:本文系福建省教育廳中青年教師教育科研項(xiàng)目資助(項(xiàng)目編號(hào):JB14234)。
由于生活壓力越來越大、生活節(jié)奏越來越快,人們就需要釋放壓力、放松自己,聽音樂是其中的一種方式,而聽音樂就需要音樂播放器。隨著智能手機(jī)的迅速普及,基于Android系統(tǒng)的音樂播放器越來越受到人們的青睞。Android系統(tǒng)是用Java語言開發(fā)的,[1]Java語言比起其它程序設(shè)計(jì)的語言,如C語言、C++、C#、.NET等等,具有不可替代的優(yōu)點(diǎn),如開放性的、不收費(fèi)的源代碼。在編程語言中,是最受歡迎、也是最流行的。市場(chǎng)上支持Android系統(tǒng)的設(shè)備也是越來越多。[2] 本文主要研究基于Android系統(tǒng)的音樂播放器的設(shè)計(jì)與實(shí)現(xiàn),從設(shè)計(jì)、功能、編碼、測(cè)試等方面進(jìn)行論述。
1 基于Android系統(tǒng)的音樂播放器的設(shè)計(jì)
音樂播放器的設(shè)計(jì)主要包括圖標(biāo)設(shè)計(jì)、用戶界面設(shè)計(jì)這兩個(gè)方面。
設(shè)計(jì)圖標(biāo)時(shí),得考慮圖標(biāo)的大小、形狀、顏色及其位置。由于大多數(shù)人對(duì)音樂播放器比較熟悉,而且會(huì)受到先入為主的影響,因此,我們采用的是大眾化所看到的音樂播放器的藍(lán)色小圖標(biāo)、喇叭形狀,這個(gè)小喇叭設(shè)置在手機(jī)界面的最底端、右下角。既讓用戶容易看得到,又不占用太大的空間。
設(shè)計(jì)用戶界面時(shí),主要考慮組件的布局和進(jìn)度條的設(shè)置。[3]這款音樂播放器會(huì)不會(huì)受到用戶的歡迎、用戶的接受程度如何、會(huì)不會(huì)多次使用或者繼續(xù)使用或者拒絕再次使用,在以上這些方面,用戶界面起著關(guān)鍵的作用。[4]另外,用戶在操作過程中,這款音樂播放器是否容易操作、簡(jiǎn)單、不煩瑣、不重復(fù);界面是否友好、簡(jiǎn)潔大方;組件的布局是否合理、是否利于操作、不能雜亂無章、不能影響進(jìn)一步地操作;進(jìn)度條的設(shè)置是否合理、是否與操作過程一致;等等,在設(shè)計(jì)音樂播放器時(shí),得綜合考慮以上的這些因素。
2 基于Android系統(tǒng)的音樂播放器的功能
該款音樂播放器的功能主要有以下八大功能:
1、隨機(jī)播放功能:先瀏覽已保存在手機(jī)上或者儲(chǔ)存卡里面的歌曲,選擇需要播放的歌曲,然后播放指定的歌曲,這個(gè)功能是比較常用的功能;
2、暫停播放功能:暫時(shí)停止當(dāng)前正在播放的歌曲,或者,正在播放歌曲期間,如果手機(jī)有接收到短信或者有接到電話,可以先啟動(dòng)暫停功能,然后再次按下這個(gè)暫停按鈕,就會(huì)繼續(xù)播放剛才播放的歌曲;
3、停止播放功能:停止播放當(dāng)前正在播放的歌曲,與一般的開關(guān)功能中的關(guān)閉功能類似,與暫停播放的功能不同;
4、前進(jìn)功能:在當(dāng)前正在播放的歌曲中前進(jìn);
5、后退功能:在當(dāng)前正在播放的歌曲中后退;
6、上一首功能:跳過當(dāng)前的歌曲,進(jìn)入上一首歌曲;
7、下一首功能:跳過當(dāng)前的歌曲,進(jìn)入下一首歌曲;
8、退出功能:退出播放器,即當(dāng)前播放器不運(yùn)行。[5]
3 基于Android系統(tǒng)的音樂播放器的編碼
開發(fā)該款音樂播放器時(shí),主要考慮的是動(dòng)作事件ActionEvent處理,這就包含事件處理機(jī)制的事件源、事件類、監(jiān)聽器等內(nèi)容.按下按鈕Button,就會(huì)產(chǎn)生相應(yīng)的ActionEvent事件,需要相應(yīng)的監(jiān)聽器接口ActionListener進(jìn)行監(jiān)聽和相應(yīng)的方法actionPerformed(ActionEvent e)來處理事件,可以調(diào)用e.getSource() 方法來獲取引發(fā)動(dòng)作事件的按鈕對(duì)象引用,也可以調(diào)用 e.getActionCommand()方法來獲取按鈕的標(biāo)簽或事先為這個(gè)按鈕設(shè)置的命令名,用按鈕 setActionCommand()方法改變動(dòng)作命令和標(biāo)簽。在編碼時(shí),就需要實(shí)現(xiàn)implements接口、注冊(cè)監(jiān)聽器addActionListener(this)、注銷監(jiān)聽器removeActionListener(this)、重寫方法actionPerformed(ActionEvent e)。[6]
在該款音樂播放器的編碼過程中,具體涉及到的代碼主要有包、類、接口、方法、屬性等等。在MainActivity類中主要有android.os.Bundle、provider.MediaStore、app.Activity、TabActivity、content.Intent、database.Cursor、view.LayoutInflater、view.Menu、widget.AdapterView、OnItemClickListener、ListView、SimpleAdapter、TabHost、android.widget、CheckBox、EditText、ImageView、ListView、Toast、WebView、CalendarView、Spinner、RadioGroup、setAdapter、setOnItemClickListener、onCreateOptionsMenu等等;在OpenImageActivity類中主要有android.app.ListActivity、content.BroadcastReceiver、Context、Intent、IntentFilter、paint、setColor setTextSize、setAlpha、drawColor、drawText、android.provider.MediaStore、ArrayList、onListItemClick、BroadcastReceiver等等;在PlayControlActivity類中主要有widget.Button、ImageButton、onCreate、SeekBar 、TextView 、onResume、registerReceiver、IntentFilter、seekBarId.setProgress、setImageResource、OnClickListener等等;在PlayerService類中主要有Service、MediaPlayer、Handle、IBinder、play、stop、pause、Runnable等等,在AppDataLis類中主要有util.ArrayList、HashMap、Map、getTitle、getSinge、getDuration、getMapData等等。[7]
4 基于Android系統(tǒng)的音樂播放器的測(cè)試
測(cè)試是研發(fā)音樂播放器過程中的一個(gè)重要環(huán)節(jié),設(shè)計(jì)、編碼、運(yùn)行、維護(hù)等各個(gè)環(huán)節(jié)都必須要測(cè)試、不能忽略測(cè)試。測(cè)試過程可采用多種的測(cè)試方法、測(cè)試工具,并且記錄相關(guān)的數(shù)據(jù)。市場(chǎng)上支持Android系統(tǒng)的手機(jī)品牌有很多,如三星、小米、紅米、索尼、華為、天翼、中興、聯(lián)想等等,通過不同品牌、不同型號(hào)的手機(jī)進(jìn)行測(cè)試,從所獲得的數(shù)據(jù)綜合分析,該款音樂播放器的功能、性能等方面符合了設(shè)計(jì)的要求。[8]
以下圖1--圖3為該款音樂播放器運(yùn)行時(shí)的部分截圖。圖1為在手機(jī)上該音樂播放器的圖標(biāo)所處的位置,容易被用戶看得到、又不占位置,便于用戶操作;圖2為啟動(dòng)該音樂播放器后進(jìn)入的界面,包含了設(shè)計(jì)提出的八大功能;圖3顯示了該音樂播放器在播放過程中的界面,包含播放狀態(tài)的進(jìn)度條。
參考文獻(xiàn)
[1] 基于Android系統(tǒng)的會(huì)議移動(dòng)白板軟件研發(fā),洪麗華著,廈門:廈門城市職業(yè)學(xué)院學(xué)報(bào),2015年9月第3期第17卷:66—70.
[2] 淺析《Java程序設(shè)計(jì)》的微課設(shè)計(jì)與實(shí)現(xiàn),洪麗華著,漳州:漳州職業(yè)技術(shù)學(xué)院學(xué)報(bào),2015年9月第3期第17卷:78—82.
[3] Android應(yīng)用程序設(shè)計(jì)[M].張思民主編,北京:清華大學(xué)出版社,2013:21.
[4] Java語言與面向?qū)ο蟪绦蛟O(shè)計(jì)(第2版)[M].王行言編著,北京:清華大學(xué)出版社,2009:16.
[5] Android開發(fā)與應(yīng)用[M].張榮主編,北京:人民郵電出版社,2014:112.
[6] Java程序設(shè)計(jì)實(shí)例教程[M].賴萬欽主編,廈門:廈門大學(xué)出版社,2010:13.
[7] Android開發(fā)實(shí)例大全[M].王東華等編著,北京:電子工業(yè)出版社,2014:117.
[8] 軟件工程[M].高樹芳主編,大連:大連理工大學(xué)出版社,2014:78.