




已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
音樂播放器詳細(xì)設(shè)計1. 引 言 隨著社會的快速發(fā)展,現(xiàn)今社會生活緊張,而欣賞音樂是其中最好的舒緩壓力的方式之一,音樂成了我們生活工作中的一個重要的部分。而3G時代的到來,手機移動應(yīng)用越來越普遍。此文檔就是為了能更好地設(shè)計出一個基于android系統(tǒng)的音樂播放器而編寫的。1.1 編寫目的 為軟件的開發(fā)者能更好的理解和明確軟件開發(fā)的詳細(xì)過程,安排項目與進(jìn)度、組織軟件開發(fā)與測試,撰寫本文檔。本文檔供項目組成員,軟件開發(fā)人員參考。1.2項目背景本項目由李雪梅、楊挺等人提出,由本組成員聯(lián)合開發(fā),實現(xiàn)播放現(xiàn)今流行的音樂MP3等文本格式。該軟件是基于Android系統(tǒng)的音樂播放軟件,并能夠與其他音樂播放軟件兼容。 1.3 參考資料 1 彭 重慶大學(xué)出版社軟件工程“軟件計劃與可行性分析”2 靳巖、姚尚明 人民郵電出版社 Android開發(fā)入門與實踐3 可行性分析4 音樂播放器需求分析書5 音樂播放器總體設(shè)計說明書 1.4 項目開發(fā)計劃 實施計劃: 階段名稱 負(fù)責(zé)人 需求分析 楊挺、李雪梅 總體設(shè)計 李雪梅、楊挺 詳細(xì)設(shè)計 李雪梅、楊挺 軟件測試 李雪梅、楊挺 在技術(shù)方面,編程知識比較缺乏,對有些與項目相關(guān)的軟件 不熟悉,需進(jìn)行人員的技術(shù)培訓(xùn)(自學(xué)為主),技術(shù)難點是數(shù)據(jù)庫 的構(gòu)架和軟件功能的設(shè)計。2. 總體設(shè)計2.1 項目目的 本項目的目的是開發(fā)一個可以播放主流的音樂文本格式的播放器。設(shè)計的主要實現(xiàn)功能是播放MP3等格式的音樂文件,并且能控制播放,暫停,停止,音量控制,選擇上一曲,選擇下一曲,更改皮膚,歌曲列表文件的管理操作,在線播放,讀取存儲卡播放等多種播放控制,界面簡明,操作簡單。 軟件系統(tǒng)檢測到錯誤行為時,報告錯誤,并提示處理操作。 2.2 軟件運行環(huán)境硬 件:Android操作系統(tǒng)手機系統(tǒng)軟件:Android 2.2 - 4.0版本支撐軟件:Eclipse 7.5 、ADT 1.5 2.3 需求概述 根據(jù)項目,我們可以獲得項目系統(tǒng)的基本需求,從功能需求、 界面需求、性能需求、可靠性要求四個方面來描述系統(tǒng)的需求,再分別對各個需求進(jìn)行分析。 2.4 條件與限制開發(fā)人員開發(fā)經(jīng)驗嚴(yán)重不足;編程人員對開發(fā)工具不熟悉,編程經(jīng)驗非常有限;具備運行環(huán)境。 2.5 軟件結(jié)構(gòu) 3. 程序描述 3.1 歌曲界面控制 歌曲界面控制可分為:播放/暫停/停止模塊、上一曲/下一曲 模塊、音量模塊。3.1.1 播放/暫停/停止模塊 流程圖:獲取當(dāng)前狀態(tài)播放開 始 點擊事件 停止暫停獲取當(dāng)前狀態(tài)獲取當(dāng)前狀態(tài)是否為播放 是否為播放 N N Y Y停止歌曲暫停歌曲是否為播放暫停 N結(jié) 束播放歌曲 Y程序邏輯: 當(dāng)用戶點擊播放暫停停止按鈕時,播放器就對當(dāng)前播放事件監(jiān)聽從而控制當(dāng)前音樂的播放暫停停止,部分關(guān)鍵代碼如下: /播放按鈕 playPauseBtn.setOnClickListener(new OnClickListener() public void onClick(View v) int cmd = 0; Intent i = new Intent(MusicService.MUSIC_CONTROL); /判斷當(dāng)前的狀態(tài)值是什么狀態(tài) 如果是播放狀態(tài) if (status = MusicService.STATUS_PLAYING) cmd = MusicService.CMD_PAUSE; /發(fā)送暫停的命令 else if (status = MusicService.STATUS_STOPPED) cmd = MusicService.CMD_START; /發(fā)送播放的命令 else cmd = MusicService.CMD_RESUME; /繼續(xù)播放的命令 i.putExtra(cmd, cmd); /將命令廣播出去 sendBroadcast(i); /發(fā)送廣播 );3.1.2 上一曲下一曲模塊 流程圖:開 始 單擊事件上一曲下一曲獲取當(dāng)前歌曲位置獲取當(dāng)前歌曲位置有無后繼有無前驅(qū) N N Y Y跳轉(zhuǎn)到下一曲目跳轉(zhuǎn)到上一曲目結(jié) 束程序邏輯: 當(dāng)用戶點擊上一曲下一曲按鈕時,播放器就對當(dāng)前播放事件監(jiān)聽,從音樂列表中轉(zhuǎn)換音樂,從而控制當(dāng)前音樂的上一曲下一曲,關(guān)鍵代碼如下:/上一曲鍵事件監(jiān)聽器 previousBtn.setOnClickListener (new OnClickListener() public void onClick(View v) Intent i = new Intent(MusicService.MUSIC_CONTROL); int cmd = MusicService.CMD_PREV;/發(fā)送前一首的命令 i.putExtra(cmd, cmd); sendBroadcast(i); ); / 下一曲鍵事件監(jiān)聽器 nextBtn.setOnClickListener(new OnClickListener() public void onClick(View v) Intent i = new Intent(MusicService.MUSIC_CONTROL); int cmd = MusicService.CMD_NEXT; i.putExtra(cmd, cmd); sendBroadcast(i); ); /設(shè)置SeekBar的監(jiān)聽事件 sb.setOnSeekBarChangeListener(new OnSeekBarChangeListener() /當(dāng)停止拖動時調(diào)用的方法 public void onStopTrackingTouch(SeekBar seekBar) public void onStartTrackingTouch(SeekBar seekBar) /當(dāng)SeekBar拖動時會執(zhí)行此方法 public void onProgressChanged(SeekBar seekBar, int prog, boolean fromUser) /fromUser參數(shù)意思是判斷拖動是否是用戶用手拖動的 if (fromUser = true & Math.abs(prog - progress) = 5) progress = prog; Intent i = new Intent(MusicService.MUSIC_CONTROL); int cmd = MusicService.CMD_SEEK;/發(fā)送拖動的命令 i.putExtra(cmd, cmd); i.putExtra(progress, progress);/講拖動的進(jìn)度傳進(jìn)Service sendBroadcast(i); sb.setProgress(progress); ); 3.1.3 音量模塊流程圖:開 始 單擊事件 NN音量增 Y獲取當(dāng)前音量 Y音量是否為0獲取當(dāng)前音量 N音量是否為7音量減1 Y N音量加1 結(jié) 束 程序邏輯: 聲音有兩個按鈕控制,一個增加聲音和一個減少聲音。通過 這兩個按鈕用戶可以調(diào)節(jié)播放音樂的聲音大小,用AudioManager 組件對聲音的大小進(jìn)行增減,最大為7,最小為0。當(dāng)用戶點擊 聲音按鈕時,若是增按鈕,對聲音進(jìn)行增加,若是減按鈕對聲音 進(jìn)行減小。 部分代碼如下: /獲取點擊事件 voiceUp = (ImageButton)findViewById(R.id.music_voic_up); / 音量 增加 voiceDown (ImageButton)findViewById(R.id.music_voic_down); /音量 增減小 執(zhí)行事件 audiomanage=(AudioManager)getSystemService( Context.AUDIO_SERVICE); voiceDown.setOnClickListener(new OnClickListener() public void onClick(View v) audiomanage.adjustVolume( AudioManager.ADJUST_LOWER,0); Volume=audiomanage.getStreamVolume( AudioManager.STREAM_RING); if(volume0) volume-; audiomanage.setRingerMode(volume); ); / 聲音控制按鈕聲音增加 voiceUp.setOnClickListener(new OnClickListener() public void onClick(View v) audiomanage.adjustVolume(AudioManager.ADJUST_RAISE, 0); volume=audiomanage.getStreamVolume( AudioManager.STREAM_RING); if(volume7) volume+; a
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度老舊小區(qū)改造施工安全免責(zé)及物業(yè)管理協(xié)議
- 2025年度股權(quán)贈與及公司治理結(jié)構(gòu)優(yōu)化協(xié)議
- 二零二五年度抑郁癥患者心理危機干預(yù)服務(wù)合同
- 2025年度新能源設(shè)備購銷戰(zhàn)略框架協(xié)議
- 二零二五年度知識產(chǎn)權(quán)侵權(quán)代理解除協(xié)議書范文
- 二零二五年度科技創(chuàng)新貸款共同還款協(xié)議
- 二零二五年度創(chuàng)業(yè)團(tuán)隊股份分配保密協(xié)議
- 2025年度設(shè)備拆除安全應(yīng)急預(yù)案編制與演練合同
- 二零二五年度辦公樓租賃及稅收優(yōu)惠政策協(xié)議
- 二零二五年度生態(tài)保護(hù)區(qū)拆遷居民安置協(xié)議
- 產(chǎn)房應(yīng)急預(yù)案及流程
- 培智三年級生活數(shù)學(xué)(下)教學(xué)計劃
- 【MOOC】現(xiàn)代郵政英語(English for Modern Postal Service)-南京郵電大學(xué) 中國大學(xué)慕課MOOC答案
- 巨量千川營銷師(初級)認(rèn)證考試復(fù)習(xí)題庫(含答案)
- 2024解析:第十章 浮力、阿基米德原理及其應(yīng)用-基礎(chǔ)練(解析版)
- 2019年山東省普通高校招生春季考試英語試題
- 假性動脈瘤護(hù)理
- 部編版(2024)三年級道德與法治上冊第12課《生活離不開規(guī)則》教學(xué)課件
- 書法測評基礎(chǔ)理論知識單選題100道及答案解析
- 2024年新課標(biāo)卷高考化學(xué)試卷試題真題答案詳解(精校打印版)
- 音頻功率放大器的設(shè)計與實現(xiàn)
評論
0/150
提交評論