多媒體綜合實(shí)驗(yàn)報(bào)告_第1頁
多媒體綜合實(shí)驗(yàn)報(bào)告_第2頁
多媒體綜合實(shí)驗(yàn)報(bào)告_第3頁
多媒體綜合實(shí)驗(yàn)報(bào)告_第4頁
多媒體綜合實(shí)驗(yàn)報(bào)告_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

多媒體技術(shù)與應(yīng)用綜合設(shè)計(jì)報(bào)告題目:android音樂播放器班級(jí):1020562學(xué)號(hào):36姓名:陳藍(lán)杰成績:日期:2013年12月13日基于Android的音樂播放器目錄1 綜合設(shè)計(jì)的目的和要求…………31.1項(xiàng)目背景……………31.2編寫目的……………42 系統(tǒng)需求分析……………………42.1功能需求……………42.1.1控制需求……………………2.1.2清單列表需求………………52.1.3友好性需求…………………2.2系統(tǒng)界面需求………………………62.3系統(tǒng)性能需求………………………63 系統(tǒng)詳細(xì)設(shè)計(jì)……………………73.1功能設(shè)計(jì)……………73.1.1播放界面設(shè)計(jì)3.1.2播放列表設(shè)計(jì)………………………3.1.3菜單功能設(shè)計(jì)3.1.4播放設(shè)置設(shè)計(jì)3.2系統(tǒng)運(yùn)行環(huán)境………………………153.3開發(fā)工具……………154 總結(jié)………………165 參考文獻(xiàn)…………16

《Android音樂播放器》綜合設(shè)計(jì)的目的與要求項(xiàng)目背景當(dāng)今社會(huì)的生活節(jié)奏越來越快,人們對(duì)手機(jī)的要求也越來越高,由于手機(jī)市場(chǎng)發(fā)展迅速,使得手機(jī)操作系統(tǒng)也出現(xiàn)了不同各類,現(xiàn)在的市場(chǎng)上主要有三個(gè)手機(jī)操作系統(tǒng),Windowsmobile,symbian,以及谷歌的Android操作系統(tǒng),其中占有開放源代碼優(yōu)勢(shì)的Android系統(tǒng)有最大的發(fā)展前景。那么能否在手機(jī)上擁有自己編寫的個(gè)性音樂播放器呢?能的,谷歌Android系統(tǒng)就能做到。本文的音樂播放器就是基于谷歌Android手機(jī)平臺(tái)的播放器。隨著計(jì)算機(jī)的廣泛運(yùn)用,手機(jī)市場(chǎng)的迅速發(fā)展,各種音頻視頻資源也在網(wǎng)上廣為流傳,這些資源看似平常,但已經(jīng)漸漸成為人們生活中必不可少的一部分了。于是各種手機(jī)播放器也緊跟著發(fā)展起來,但是很多播放器一味追求外觀花哨,功能龐大,對(duì)用戶的手機(jī)造成了很多資源浪費(fèi),比如CPU,內(nèi)存等的占用率過高,在用戶需要多任務(wù)操作時(shí),受到了不小的影響,帶來了許多不便,而對(duì)于大多數(shù)普通用戶,許多功能用不上,形同虛設(shè)。針對(duì)以上各種弊端,選擇了開發(fā)多語種的音頻視頻播放器,將各種性能優(yōu)化,繼承播放器的常用功能,滿足一般用戶(如聽歌,看電影)的需求,除了能播放常見格式的語音視頻文件,高級(jí)功能:還能播放RMVB格式的視頻文件。此外,還能支持中文、英文等語言界面。

要研究了各種市場(chǎng)上流行的手機(jī)播放器,了解它們各自的插件及編碼方式,還有各種播放器播放的特別格式文件,分析各種編碼的優(yōu)缺點(diǎn)以及各種播放器本身存在的缺陷和特點(diǎn),編寫出功能實(shí)用,使用方便快捷的播放器。目前已經(jīng)實(shí)現(xiàn)的功能有能播放常見音頻文件的功能,如MP3,WAV,等,擁有播放菜單,能選擇播放清單,具備一般播放器的功能,如快進(jìn),快退,音量調(diào)節(jié)等。播放模式也比較完善,有單曲,順序,循環(huán),隨機(jī)播放等模式。1.2編寫目的現(xiàn)今社會(huì)生活緊張,而欣賞音樂是其中最好的舒緩壓力的方式之一,本項(xiàng)目的目的是開發(fā)一個(gè)可以播放主流音樂文件格式的播放器,本設(shè)計(jì)的實(shí)現(xiàn)的這主要功能是播放Mp3,Wav多種格式的音樂文件,并且能夠控制播放,暫停,停止,上一曲,下一曲,音量調(diào)節(jié),視覺外觀,播放列表和歌曲文件的管理操作等多種播放控制功能,界面簡明,操作簡單。本項(xiàng)目是一款基于Android手機(jī)平臺(tái)的音樂播放器,使Android手機(jī)擁有個(gè)性的多媒體播放器,使手機(jī)顯得更生動(dòng)靈活化,與人們更為接近,讓手機(jī)主人隨時(shí)隨地處于音樂視頻的旋律之中。使人們的生活更加多樣化。也使設(shè)計(jì)者更加熟練Android的技術(shù)和其它在市場(chǎng)上的特點(diǎn)。2、系統(tǒng)需求分析2.1功能需求2.1.1控制需求圖2.1播放器基本控制圖2.1.2清單列表需求圖2.2播放器清單2.1.3友好性需求圖2.3播放器設(shè)定2.2系統(tǒng)界面需求播放器界面要求布局合理,顏色舒適,控制按鈕友好,為了減少開發(fā)工程量,圖片素材多數(shù)為公司項(xiàng)目素材(圖2.4)圖2.4播放器界面說明:左下角為清單按鈕右下角為程序退出按鈕藍(lán)色條為音軌2.3系統(tǒng)性能需求根據(jù)Android手機(jī)系統(tǒng)要求無響應(yīng)時(shí)間為5秒,所以就有如下性能要求:(1)當(dāng)要求歌曲播放時(shí),程序響應(yīng)時(shí)間最長不能超過5秒(2)當(dāng)要求歌曲暫停時(shí),程序響應(yīng)時(shí)間最長不能超過5秒(3)當(dāng)要求歌曲停止時(shí),程序響應(yīng)時(shí)間最長不能超過5秒(4)當(dāng)要求歌曲上/下一首時(shí),程序響應(yīng)時(shí)間最長不能超過5秒(5)當(dāng)要求進(jìn)行清單列表時(shí),程序響應(yīng)時(shí)間最長不能超過5秒3、系統(tǒng)詳細(xì)設(shè)計(jì)3.1功能設(shè)計(jì)3.1.1播放器主界面設(shè)計(jì)播放器主界面(圖3.1)圖3.1Android的每一個(gè)可視化界面,都有其的唯一的布局配置文件,該文件里面有各種布局方式,和各種資源文件如圖像,文字,顏色的引用,程序在運(yùn)行時(shí),可以通過代碼對(duì)各配置文件進(jìn)行讀取。這樣就可以形成不同的可視化界面和炫麗的效果。播放器主界面是一個(gè)Activity,Android工程在每個(gè)activity啟動(dòng)的時(shí)候會(huì)首先執(zhí)行Oncreate()方法,如下代碼:@Override PublicvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState);setContentView(R.layout.play_rack);}該方法主要執(zhí)行界面的初始化操作,Activity有個(gè)設(shè)置布局的方法:Context.setContentView(layoutResID),參數(shù)為資源ID,該Id在工程目錄res/layout下,主界面布局文件名為play_rack。下面為play_rack.xml布局文件代碼結(jié)構(gòu)如下:<?xmlversion="1.0"encoding="utf-8"?><AbsoluteLayout><LinearLayout></LinearLayout><SeekBar></SeekBar><LinearLayout></LinearLayout></AbsoluteLayout>在絕對(duì)布局<AbsoluteLayout>下嵌套兩種線性布局<LinearLayout>和<SeekBar>,第一個(gè)<LinearLayout>實(shí)現(xiàn)了標(biāo)題和歌曲名的顯示位置,通過<AbsoluteLayout>布局設(shè)置<LinearLayout>絕對(duì)坐標(biāo)來控制標(biāo)題的位置。每個(gè)布局內(nèi)可以放置多種Widget(窗體部件)例如:<TextView><ImageButton>等。每個(gè)Widget內(nèi)有多種屬性,可以設(shè)置該Widget的坐標(biāo),大小,背景和顏色等參數(shù)。在播放界面中,歌詞顯示為居中,實(shí)現(xiàn)方法代碼如下:<LinearLayoutandroid:orientation="horizontal"android:gravity="center"android:layout_height="wrap_content" android:layout_width="fill_parent"> <TextViewandroid:layout_height="wrap_content" android:textColor="#8deeee"android:id="@+id/lrcText" android:layout_width="wrap_content"></TextView></LinearLayout>屬性:orientation="horizontal":此線性布局的子部件為水平方式布局 Layout_width="fill_content":布局的寬度為填滿父布局Layout_height="wrap_content":布局的高度子由窗體的大小決定窗體TextView文本:textColor="8deeee"設(shè)置文本顯示的顏色RGB為"8deeee"TextSize為默認(rèn)大小3.1.2播放列表設(shè)計(jì)播放列表界面(如圖3.2)圖3.2布局層次關(guān)系如下:<?xmlversion="1.0"encoding="utf-8"?><LinearLayout><LinearLayout> <TextView></TextView></LinearLayout> <ListView></ListView><LinearLayout> <ImageButton></ImageButton> </LinearLayout></LinearLayout>在Android里面,有一個(gè)視圖叫ListView,其特點(diǎn)是一個(gè)有BaseAdapter的屬性,從下到下,或從左到右的顯示方式。系統(tǒng)默認(rèn)的方式每一行只顯示一個(gè)TextView,本播放列表實(shí)現(xiàn)了自定義的方式,剛ListView的每一行顯示一個(gè)音樂圖片和一個(gè)歌曲名字。我們定義一個(gè)類MusicAdapter繼承了BaseAdapter,然后通過算法對(duì)這個(gè)適配器進(jìn)行擴(kuò)展,擴(kuò)展成為第一行能顯示一張圖片和一個(gè)歌曲名字。由于BaseAdapter是一個(gè)抽象類,我們需要實(shí)現(xiàn)里面的抽象方法getView()。該方法返回一個(gè)View,即視圖。視圖可以顯示在Activity上,所以就可以看到我們想要的歌曲列表界面。ListView同樣有一個(gè)監(jiān)聽器newonItemClickListener(){@OverridepublicvoidonItemClick(AdapterView<?>arg0,Viewarg1,intarg2,longarg3){}},我們只要實(shí)現(xiàn)這個(gè)方法,就可以監(jiān)聽鼠標(biāo)的點(diǎn)擊事件,當(dāng)鼠標(biāo)點(diǎn)擊到每一行時(shí),可以通過ListView.getItemAtPositon(intposition)得到該行上的信息。這樣就可以通過Intent將數(shù)據(jù)傳入到其它的Activity。本程序的思路是當(dāng)鼠標(biāo)點(diǎn)擊一行,會(huì)跳轉(zhuǎn)到另一個(gè)Activity里面,這個(gè)Activity和歌曲列表類似,也是一個(gè)ListView,該界面將在下一節(jié)介紹。 歌曲列表是從播放主界面跳轉(zhuǎn)過來的,能跳到該歌曲列表是前提是數(shù)據(jù)有歌曲列表的存在。因?yàn)槊看胃枨斜盹@示時(shí)會(huì)查詢數(shù)據(jù)庫中的歌曲列表。如果不存在剛會(huì)提示是空列表,選擇到SDCard中添加歌曲(如圖3.3)圖3.3中間為一個(gè)Dialog對(duì)話框,具有Acitivty的屬性,但是獨(dú)立于界面的一個(gè)視圖,該對(duì)話框中放置了一個(gè)布局文件。Dialog的創(chuàng)建:AlertDialog.Builder,AlertDialogalert=builder.create();alert.show();該Dialog上有兩個(gè)菜單選項(xiàng),第一個(gè)為“從SD卡”,點(diǎn)擊會(huì)跳轉(zhuǎn)到SDcard界面中。3.1.3菜單功能設(shè)計(jì)菜單界面(如圖3.4)圖3.4在Menu.Xml配置文件中,布局結(jié)構(gòu)如下:<?xmlversion="1.0"encoding="utf-8"?><LinearLayout><LinearLayout><TextView></TextView></LinearLayout> <ListView></ListView><TextView></TextView><LinearLayout> <ImageButton></ImageButton> </LinearLayout></LinearLayout>在程序中的Menu.Java中有List<String>容器,該容器可以存放String類型的字符,如下:List<String>seclect_items=newArrayList<String>();seclect_items.add("播放"); seclect_items.add("詳細(xì)"); seclect_items.add("新增"); seclect_items.add("移除"); seclect_items.add("全部移除"); seclect_items.add("設(shè)置");然后通過ListView.setAdapter();方法將這些參數(shù)設(shè)置到界面中去,可以看到與界面顯示效果相同!該菜單每一行有一張圖片和一個(gè)菜單選項(xiàng)(如圖3.5)圖3.5ListAdapter繼承一個(gè)BaseAdapter,實(shí)現(xiàn)里面的getView()方法,再對(duì)其進(jìn)行擴(kuò)展。ViewgetView(intposition,ViewconvertView,ViewGroupparent){ convertView=inflater.inflate(R.layout.file_row,null);holder.text=(TextView)convertView.findViewById(R.id.text);holder.icon=(ImageView)convertView.findViewById(R.id.image_Icon); convertView.setTag(holder);}ListAdapter每一行都是一個(gè)LineaLayout布局,水平放置一個(gè)圖片一個(gè)String。這種算法的實(shí)現(xiàn)在前面已經(jīng)討論過,這里不再討論。菜單有6個(gè)功能:播放,詳細(xì),新增,移除,全部移除,設(shè)置。各功能都是通過鼠標(biāo)點(diǎn)擊或觸屏觸發(fā)事件。播放功能:點(diǎn)擊后事件觸發(fā),傳入歌曲名字,讓程序操作該名字進(jìn)行播放。詳細(xì)功能:點(diǎn)擊后事件觸發(fā),傳入歌曲名字,跳轉(zhuǎn)到下一界面,顯示該歌曲的詳細(xì)信息。新增功能:點(diǎn)擊后事件觸發(fā),進(jìn)入到SDCard中,進(jìn)行歌曲添加選擇。移除功能:點(diǎn)擊后事件觸發(fā)。從數(shù)據(jù)庫中刪除選中的歌曲。全部移除:點(diǎn)擊后事件觸發(fā),刪除播放列表。設(shè)置功能:點(diǎn)擊后事件觸發(fā),進(jìn)入到播放設(shè)置列表。選擇移除菜單選項(xiàng)時(shí),出現(xiàn)的Dialog、選擇全部移除菜單選項(xiàng)時(shí),出現(xiàn)的Dialog圖3.6圖3.7刪除單首歌曲算法:是對(duì)數(shù)據(jù)庫進(jìn)行單項(xiàng)操作。通過歌曲名字刪歌曲,算法如下:del_One(StringmusicName){ContentResolvercr=getContentResolver();Uriuri=DBProvider.CONTENT_URI; Stringwhere="fileName=?"; String[]selectionArgs={musicName}; cr.delete(uri,where,selectionArgs); }選擇“是”后,執(zhí)行代碼:Intentintent=newIntent(Menu.this,PlayListActivity.class); startActivity(intent);聲明一個(gè)Intent,并指明要跳轉(zhuǎn)的界面類,然后啟動(dòng)Intent。3.1.4播放設(shè)置設(shè)計(jì)圖3.8配置文件setting.Xml布局結(jié)構(gòu)如下:<?xmlversion="1.0"encoding="utf-8"?> <LinearLayout> <RadioGroup> <RadioButton></RadioButton> <RadioButton></RadioButton> <RadioButton></RadioButton> </RadioGroup> </LinearLayout><ToggleButton/><AbsoluteLayout> <ImageButton/> <ImageButton/> </AbsoluteLayout>最外層的LinearLayout里面嵌套多層LineaLayout,子LinearLayout里面嵌套著單選按鈕RatioGroup和開關(guān)按鈕ToggleButton。RatioGroup里面嵌套著3個(gè)RatioButton,即界面上顯示的(單曲循環(huán)、隨機(jī)播放、順序播放)。用的是一個(gè)組件RadioGroup,這個(gè)組件有單項(xiàng)選擇的功能,里面有RadioButton項(xiàng),多個(gè)RadioButton項(xiàng)只能同時(shí)選中一個(gè),該播放器播放模式有單曲循環(huán),隨機(jī)播放,順序播放等功能。MediaPlayer有一個(gè)監(jiān)聽器,它監(jiān)聽著歌曲是否正在播放或者是否播放完成,當(dāng)歌曲播放完成時(shí),會(huì)觸發(fā)方法OnCompletionListener(),在該方法里面可以處理歌曲播放完成后的操作。RadioGroup可以進(jìn)行單項(xiàng)選擇操作,如圖(5.11)圖3.9通過RadioButton.isChe

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論