




已閱讀5頁,還剩6頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
音樂播放器詳細(xì)設(shè)計(jì)1. 引 言 隨著社會(huì)的快速發(fā)展,現(xiàn)今社會(huì)生活緊張,而欣賞音樂是其中最好的舒緩壓力的方式之一,音樂成了我們生活工作中的一個(gè)重要的部分。而3G時(shí)代的到來,手機(jī)移動(dòng)應(yīng)用越來越普遍。此文檔就是為了能更好地設(shè)計(jì)出一個(gè)基于android系統(tǒng)的音樂播放器而編寫的。1.1 編寫目的 為軟件的開發(fā)者能更好的理解和明確軟件開發(fā)的詳細(xì)過程,安排項(xiàng)目與進(jìn)度、組織軟件開發(fā)與測試,撰寫本文檔。本文檔供項(xiàng)目組成員,軟件開發(fā)人員參考。1.2項(xiàng)目背景本項(xiàng)目由李雪梅、楊挺等人提出,由本組成員聯(lián)合開發(fā),實(shí)現(xiàn)播放現(xiàn)今流行的音樂MP3等文本格式。該軟件是基于Android系統(tǒng)的音樂播放軟件,并能夠與其他音樂播放軟件兼容。 1.3 參考資料 1 彭 重慶大學(xué)出版社軟件工程“軟件計(jì)劃與可行性分析”2 靳巖、姚尚明 人民郵電出版社 Android開發(fā)入門與實(shí)踐3 可行性分析4 音樂播放器需求分析書5 音樂播放器總體設(shè)計(jì)說明書 1.4 項(xiàng)目開發(fā)計(jì)劃 實(shí)施計(jì)劃: 階段名稱 負(fù)責(zé)人 需求分析 楊挺、李雪梅 總體設(shè)計(jì) 李雪梅、楊挺 詳細(xì)設(shè)計(jì) 李雪梅、楊挺 軟件測試 李雪梅、楊挺 在技術(shù)方面,編程知識(shí)比較缺乏,對(duì)有些與項(xiàng)目相關(guān)的軟件 不熟悉,需進(jìn)行人員的技術(shù)培訓(xùn)(自學(xué)為主),技術(shù)難點(diǎn)是數(shù)據(jù)庫 的構(gòu)架和軟件功能的設(shè)計(jì)。2. 總體設(shè)計(jì)2.1 項(xiàng)目目的 本項(xiàng)目的目的是開發(fā)一個(gè)可以播放主流的音樂文本格式的播放器。設(shè)計(jì)的主要實(shí)現(xiàn)功能是播放MP3等格式的音樂文件,并且能控制播放,暫停,停止,音量控制,選擇上一曲,選擇下一曲,更改皮膚,歌曲列表文件的管理操作,在線播放,讀取存儲(chǔ)卡播放等多種播放控制,界面簡明,操作簡單。 軟件系統(tǒng)檢測到錯(cuò)誤行為時(shí),報(bào)告錯(cuò)誤,并提示處理操作。 2.2 軟件運(yùn)行環(huán)境硬 件:Android操作系統(tǒng)手機(jī)系統(tǒng)軟件:Android 2.2 - 4.0版本支撐軟件:Eclipse 7.5 、ADT 1.5 2.3 需求概述 根據(jù)項(xiàng)目,我們可以獲得項(xiàng)目系統(tǒng)的基本需求,從功能需求、 界面需求、性能需求、可靠性要求四個(gè)方面來描述系統(tǒng)的需求,再分別對(duì)各個(gè)需求進(jìn)行分析。 2.4 條件與限制開發(fā)人員開發(fā)經(jīng)驗(yàn)嚴(yán)重不足;編程人員對(duì)開發(fā)工具不熟悉,編程經(jīng)驗(yàn)非常有限;具備運(yùn)行環(huán)境。 2.5 軟件結(jié)構(gòu) 3. 程序描述 3.1 歌曲界面控制 歌曲界面控制可分為:播放/暫停/停止模塊、上一曲/下一曲 模塊、音量模塊。3.1.1 播放/暫停/停止模塊 流程圖:獲取當(dāng)前狀態(tài)播放開 始 點(diǎn)擊事件 停止暫停獲取當(dāng)前狀態(tài)獲取當(dāng)前狀態(tài)是否為播放 是否為播放 N N Y Y停止歌曲暫停歌曲是否為播放暫停 N結(jié) 束播放歌曲 Y程序邏輯: 當(dāng)用戶點(diǎn)擊播放暫停停止按鈕時(shí),播放器就對(duì)當(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)用戶點(diǎn)擊上一曲下一曲按鈕時(shí),播放器就對(duì)當(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)停止拖動(dòng)時(shí)調(diào)用的方法 public void onStopTrackingTouch(SeekBar seekBar) public void onStartTrackingTouch(SeekBar seekBar) /當(dāng)SeekBar拖動(dòng)時(shí)會(huì)執(zhí)行此方法 public void onProgressChanged(SeekBar seekBar, int prog, boolean fromUser) /fromUser參數(shù)意思是判斷拖動(dòng)是否是用戶用手拖動(dòng)的 if (fromUser = true & Math.abs(prog - progress) = 5) progress = prog; Intent i = new Intent(MusicService.MUSIC_CONTROL); int cmd = MusicService.CMD_SEEK;/發(fā)送拖動(dòng)的命令 i.putExtra(cmd, cmd); i.putExtra(progress, progress);/講拖動(dòng)的進(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é) 束 程序邏輯: 聲音有兩個(gè)按鈕控制,一個(gè)增加聲音和一個(gè)減少聲音。通過 這兩個(gè)按鈕用戶可以調(diào)節(jié)播放音樂的聲音大小,用AudioManager 組件對(duì)聲音的大小進(jìn)行增減,最大為7,最小為0。當(dāng)用戶點(diǎn)擊 聲音按鈕時(shí),若是增按鈕,對(duì)聲音進(jìn)行增加,若是減按鈕對(duì)聲音 進(jìn)行減小。 部分代碼如下: /獲取點(diǎ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等.壓縮文件請(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 配電安規(guī)習(xí)題+參考答案
- 河南省上蔡一高2025年高三3月份模擬考試英語試題含解析
- 機(jī)修鉗工(設(shè)備鉗工)復(fù)習(xí)題及答案
- 浙江省寧波四中2025屆高三下學(xué)期第五次調(diào)研考試英語試題含解析
- 2025年福建省廈門二中高考考前模擬英語試題含答案
- 江蘇省連云港市海州區(qū)2024-2025學(xué)年高一下學(xué)期4月期中學(xué)業(yè)水平質(zhì)量監(jiān)測化學(xué)試題(原卷版+解析版)
- 紙容器食品安全包裝要求與檢測考核試卷
- 管道工程綠色施工技術(shù)創(chuàng)新動(dòng)態(tài)與發(fā)展趨勢考核試卷
- 美容儀器電路設(shè)計(jì)與優(yōu)化案例分析考核試卷
- 航空物流企業(yè)的供應(yīng)鏈金融創(chuàng)新考核試卷
- 《三國演義》之劉備有感
- 連續(xù)油管技術(shù)理論考核試題
- 穴位埋線療法療法
- 睪丸附睪炎護(hù)理
- 卡西歐dh800電吹管說明書
- 3Q設(shè)備驗(yàn)證文件
- 流式細(xì)胞術(shù)(免疫學(xué)檢驗(yàn)課件)
- 急危重癥護(hù)理PPT高職完整全套教學(xué)課件
- 浙江公路技師學(xué)院工作人員招聘考試真題2022
- 《大道之行也》比較閱讀12篇(歷年中考語文文言文閱讀試題匯編)(含答案與翻譯)(截至2020年)
- 螺旋輸送機(jī)的設(shè)計(jì)大學(xué)論文
評(píng)論
0/150
提交評(píng)論