版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
多媒體技術與應用綜合設計報告題目:android音樂播放器班級:1020562學號:36姓名:陳藍杰成績:日期:2013年12月13日基于Android的音樂播放器目錄1 綜合設計的目的和要求…………31.1項目背景……………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)詳細設計……………………73.1功能設計……………73.1.1播放界面設計3.1.2播放列表設計………………………3.1.3菜單功能設計3.1.4播放設置設計3.2系統(tǒng)運行環(huán)境………………………153.3開發(fā)工具……………154 總結………………165 參考文獻…………16
《Android音樂播放器》綜合設計的目的與要求項目背景當今社會的生活節(jié)奏越來越快,人們對手機的要求也越來越高,由于手機市場發(fā)展迅速,使得手機操作系統(tǒng)也出現了不同各類,現在的市場上主要有三個手機操作系統(tǒng),Windowsmobile,symbian,以及谷歌的Android操作系統(tǒng),其中占有開放源代碼優(yōu)勢的Android系統(tǒng)有最大的發(fā)展前景。那么能否在手機上擁有自己編寫的個性音樂播放器呢?能的,谷歌Android系統(tǒng)就能做到。本文的音樂播放器就是基于谷歌Android手機平臺的播放器。隨著計算機的廣泛運用,手機市場的迅速發(fā)展,各種音頻視頻資源也在網上廣為流傳,這些資源看似平常,但已經漸漸成為人們生活中必不可少的一部分了。于是各種手機播放器也緊跟著發(fā)展起來,但是很多播放器一味追求外觀花哨,功能龐大,對用戶的手機造成了很多資源浪費,比如CPU,內存等的占用率過高,在用戶需要多任務操作時,受到了不小的影響,帶來了許多不便,而對于大多數普通用戶,許多功能用不上,形同虛設。針對以上各種弊端,選擇了開發(fā)多語種的音頻視頻播放器,將各種性能優(yōu)化,繼承播放器的常用功能,滿足一般用戶(如聽歌,看電影)的需求,除了能播放常見格式的語音視頻文件,高級功能:還能播放RMVB格式的視頻文件。此外,還能支持中文、英文等語言界面。
要研究了各種市場上流行的手機播放器,了解它們各自的插件及編碼方式,還有各種播放器播放的特別格式文件,分析各種編碼的優(yōu)缺點以及各種播放器本身存在的缺陷和特點,編寫出功能實用,使用方便快捷的播放器。目前已經實現的功能有能播放常見音頻文件的功能,如MP3,WAV,等,擁有播放菜單,能選擇播放清單,具備一般播放器的功能,如快進,快退,音量調節(jié)等。播放模式也比較完善,有單曲,順序,循環(huán),隨機播放等模式。1.2編寫目的現今社會生活緊張,而欣賞音樂是其中最好的舒緩壓力的方式之一,本項目的目的是開發(fā)一個可以播放主流音樂文件格式的播放器,本設計的實現的這主要功能是播放Mp3,Wav多種格式的音樂文件,并且能夠控制播放,暫停,停止,上一曲,下一曲,音量調節(jié),視覺外觀,播放列表和歌曲文件的管理操作等多種播放控制功能,界面簡明,操作簡單。本項目是一款基于Android手機平臺的音樂播放器,使Android手機擁有個性的多媒體播放器,使手機顯得更生動靈活化,與人們更為接近,讓手機主人隨時隨地處于音樂視頻的旋律之中。使人們的生活更加多樣化。也使設計者更加熟練Android的技術和其它在市場上的特點。2、系統(tǒng)需求分析2.1功能需求2.1.1控制需求圖2.1播放器基本控制圖2.1.2清單列表需求圖2.2播放器清單2.1.3友好性需求圖2.3播放器設定2.2系統(tǒng)界面需求播放器界面要求布局合理,顏色舒適,控制按鈕友好,為了減少開發(fā)工程量,圖片素材多數為公司項目素材(圖2.4)圖2.4播放器界面說明:左下角為清單按鈕右下角為程序退出按鈕藍色條為音軌2.3系統(tǒng)性能需求根據Android手機系統(tǒng)要求無響應時間為5秒,所以就有如下性能要求:(1)當要求歌曲播放時,程序響應時間最長不能超過5秒(2)當要求歌曲暫停時,程序響應時間最長不能超過5秒(3)當要求歌曲停止時,程序響應時間最長不能超過5秒(4)當要求歌曲上/下一首時,程序響應時間最長不能超過5秒(5)當要求進行清單列表時,程序響應時間最長不能超過5秒3、系統(tǒng)詳細設計3.1功能設計3.1.1播放器主界面設計播放器主界面(圖3.1)圖3.1Android的每一個可視化界面,都有其的唯一的布局配置文件,該文件里面有各種布局方式,和各種資源文件如圖像,文字,顏色的引用,程序在運行時,可以通過代碼對各配置文件進行讀取。這樣就可以形成不同的可視化界面和炫麗的效果。播放器主界面是一個Activity,Android工程在每個activity啟動的時候會首先執(zhí)行Oncreate()方法,如下代碼:@Override PublicvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState);setContentView(R.layout.play_rack);}該方法主要執(zhí)行界面的初始化操作,Activity有個設置布局的方法:Context.setContentView(layoutResID),參數為資源ID,該Id在工程目錄res/layout下,主界面布局文件名為play_rack。下面為play_rack.xml布局文件代碼結構如下:<?xmlversion="1.0"encoding="utf-8"?><AbsoluteLayout><LinearLayout></LinearLayout><SeekBar></SeekBar><LinearLayout></LinearLayout></AbsoluteLayout>在絕對布局<AbsoluteLayout>下嵌套兩種線性布局<LinearLayout>和<SeekBar>,第一個<LinearLayout>實現了標題和歌曲名的顯示位置,通過<AbsoluteLayout>布局設置<LinearLayout>絕對坐標來控制標題的位置。每個布局內可以放置多種Widget(窗體部件)例如:<TextView><ImageButton>等。每個Widget內有多種屬性,可以設置該Widget的坐標,大小,背景和顏色等參數。在播放界面中,歌詞顯示為居中,實現方法代碼如下:<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"設置文本顯示的顏色RGB為"8deeee"TextSize為默認大小3.1.2播放列表設計播放列表界面(如圖3.2)圖3.2布局層次關系如下:<?xmlversion="1.0"encoding="utf-8"?><LinearLayout><LinearLayout> <TextView></TextView></LinearLayout> <ListView></ListView><LinearLayout> <ImageButton></ImageButton> </LinearLayout></LinearLayout>在Android里面,有一個視圖叫ListView,其特點是一個有BaseAdapter的屬性,從下到下,或從左到右的顯示方式。系統(tǒng)默認的方式每一行只顯示一個TextView,本播放列表實現了自定義的方式,剛ListView的每一行顯示一個音樂圖片和一個歌曲名字。我們定義一個類MusicAdapter繼承了BaseAdapter,然后通過算法對這個適配器進行擴展,擴展成為第一行能顯示一張圖片和一個歌曲名字。由于BaseAdapter是一個抽象類,我們需要實現里面的抽象方法getView()。該方法返回一個View,即視圖。視圖可以顯示在Activity上,所以就可以看到我們想要的歌曲列表界面。ListView同樣有一個監(jiān)聽器newonItemClickListener(){@OverridepublicvoidonItemClick(AdapterView<?>arg0,Viewarg1,intarg2,longarg3){}},我們只要實現這個方法,就可以監(jiān)聽鼠標的點擊事件,當鼠標點擊到每一行時,可以通過ListView.getItemAtPositon(intposition)得到該行上的信息。這樣就可以通過Intent將數據傳入到其它的Activity。本程序的思路是當鼠標點擊一行,會跳轉到另一個Activity里面,這個Activity和歌曲列表類似,也是一個ListView,該界面將在下一節(jié)介紹。 歌曲列表是從播放主界面跳轉過來的,能跳到該歌曲列表是前提是數據有歌曲列表的存在。因為每次歌曲列表顯示時會查詢數據庫中的歌曲列表。如果不存在剛會提示是空列表,選擇到SDCard中添加歌曲(如圖3.3)圖3.3中間為一個Dialog對話框,具有Acitivty的屬性,但是獨立于界面的一個視圖,該對話框中放置了一個布局文件。Dialog的創(chuàng)建:AlertDialog.Builder,AlertDialogalert=builder.create();alert.show();該Dialog上有兩個菜單選項,第一個為“從SD卡”,點擊會跳轉到SDcard界面中。3.1.3菜單功能設計菜單界面(如圖3.4)圖3.4在Menu.Xml配置文件中,布局結構如下:<?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("詳細"); seclect_items.add("新增"); seclect_items.add("移除"); seclect_items.add("全部移除"); seclect_items.add("設置");然后通過ListView.setAdapter();方法將這些參數設置到界面中去,可以看到與界面顯示效果相同!該菜單每一行有一張圖片和一個菜單選項(如圖3.5)圖3.5ListAdapter繼承一個BaseAdapter,實現里面的getView()方法,再對其進行擴展。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每一行都是一個LineaLayout布局,水平放置一個圖片一個String。這種算法的實現在前面已經討論過,這里不再討論。菜單有6個功能:播放,詳細,新增,移除,全部移除,設置。各功能都是通過鼠標點擊或觸屏觸發(fā)事件。播放功能:點擊后事件觸發(fā),傳入歌曲名字,讓程序操作該名字進行播放。詳細功能:點擊后事件觸發(fā),傳入歌曲名字,跳轉到下一界面,顯示該歌曲的詳細信息。新增功能:點擊后事件觸發(fā),進入到SDCard中,進行歌曲添加選擇。移除功能:點擊后事件觸發(fā)。從數據庫中刪除選中的歌曲。全部移除:點擊后事件觸發(fā),刪除播放列表。設置功能:點擊后事件觸發(fā),進入到播放設置列表。選擇移除菜單選項時,出現的Dialog、選擇全部移除菜單選項時,出現的Dialog圖3.6圖3.7刪除單首歌曲算法:是對數據庫進行單項操作。通過歌曲名字刪歌曲,算法如下: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);聲明一個Intent,并指明要跳轉的界面類,然后啟動Intent。3.1.4播放設置設計圖3.8配置文件setting.Xml布局結構如下:<?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和開關按鈕ToggleButton。RatioGroup里面嵌套著3個RatioButton,即界面上顯示的(單曲循環(huán)、隨機播放、順序播放)。用的是一個組件RadioGroup,這個組件有單項選擇的功能,里面有RadioButton項,多個RadioButton項只能同時選中一個,該播放器播放模式有單曲循環(huán),隨機播放,順序播放等功能。MediaPlayer有一個監(jiān)聽器,它監(jiān)聽著歌曲是否正在播放或者是否播放完成,當歌曲播放完成時,會觸發(fā)方法OnCompletionListener(),在該方法里面可以處理歌曲播放完成后的操作。RadioGroup可以進行單項選擇操作,如圖(5.11)圖3.9通過RadioButton.isChe
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 術后肺部并發(fā)癥防治策略
- 《GB-T 22970-2010紡織面料編碼 化纖部分》專題研究報告
- 《GBT 33387-2016 工業(yè)用反式 - 1,3,3,3 - 四氟丙烯 HFO-1234ze(E)》專題研究報告
- 2026年貴州盛華職業(yè)學院單招職業(yè)技能考試題庫及答案詳解一套
- 《正常人體功能》課件-心臟的泵血過程和機制
- 《藥品生物檢定技術》創(chuàng)新課件-利用現代智能數據分析做中藥養(yǎng)生奶茶
- 流動資金循環(huán)貸款擔保合同
- 2026醫(yī)院護理部工作計劃(5篇)
- 2026年消防施工公司年度工作計劃(5篇)
- 2025年3月7日下午山東公務員省考面試題簡析及參考答案
- 中國淋巴瘤治療指南(2025年版)
- 2025年云南省人民檢察院聘用制書記員招聘(22人)考試筆試模擬試題及答案解析
- 2026年空氣污染監(jiān)測方法培訓課件
- 實習2025年實習實習期轉正協議合同
- 2025年廣西公需科目答案6卷
- 立體構成-塊材課件
- 純化水再驗證方案
- 神泣命令代碼
- 北京林業(yè)大學 研究生 學位考 科技論文寫作 案例-2023修改整理
- 四年級《上下五千年》閱讀測試題及答案
- 江蘇省五高等職業(yè)教育計算機網絡技術專業(yè)指導性人才培養(yǎng)方案
評論
0/150
提交評論