安卓音樂播放器之歐陽與創(chuàng)編_第1頁
安卓音樂播放器之歐陽與創(chuàng)編_第2頁
安卓音樂播放器之歐陽與創(chuàng)編_第3頁
安卓音樂播放器之歐陽與創(chuàng)編_第4頁
安卓音樂播放器之歐陽與創(chuàng)編_第5頁
已閱讀5頁,還剩20頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

否在手機上擁有■自己編寫的個牲音樂播放器呢?能否在手機上擁有■自己編寫的個牲音樂播放器呢?能《彩聯(lián)網(wǎng)移動應(yīng)用開發(fā)》時間:2021.03.08創(chuàng)作:歐陽與課程段計題目音樂播放器設(shè)計班級牛多聯(lián)網(wǎng)1303學號311309080318姓名牟俊強指尋走師劉來利2016年6月25日1?頊目刑耒肖今社會的生適節(jié)奏逖耒邈快,人D1對手機的要求也逖耒逖;T,由于手機市場友展迅速,茨得手機操作菜統(tǒng)也凹現(xiàn)T不同各類,現(xiàn)在的市場上主契有三個手機操TE菜統(tǒng),Windowsmobile,symbian,嘆及谷馭的Android操作菜統(tǒng),其中占有開放源代碼優(yōu)勢的Android統(tǒng)有最大的友展前景。那么能歐陽與創(chuàng)編 歐陽與創(chuàng)編 2021.03.08歐陽與創(chuàng)編 歐陽與創(chuàng)編 2021.03.08的,Android統(tǒng)就能做至九本文的音樂播放器就是基于谷軟Android手機平合的播放靄。Android:是谷歌于2007年公布的開放K源代碼手機菜統(tǒng),它的開放牲就優(yōu)于其它封閉程Bm手機柔統(tǒng),因此,任何人都可能根據(jù)自己的喜好將手機系:統(tǒng)中的所有功能重新編寫。達茨得邈耒逖多的人夷汪達個操化菜統(tǒng)。茶次作品音樂播敖:器就是基于Android平合的。現(xiàn)今社會主話緊張,而欣覧音樂是萇中最好的舒緩層力的方程卒項目的目的是開發(fā)—個可嘆播放至流音樂文件裕玩的播放器,本設(shè)計實現(xiàn)的主契功能是播放Mp3,Wav多種格K的音樂文件,弄且能醐控制播放,暫停,停止,播放列茅基本播枚控制功能,界面簡明,璨倫簡單。卒項目是一款基于Android手機平合的音樂播茨謂,TMAndroid手機擁有個牲的多媒體播放器,茨手機顯得更生動靈話T匕,與人D1更為接近,讓手機至人隨時隨咆處于音樂稅頻的徙律宅中。茨人D1的生話更加多樣Y匕。巴茨設(shè)計看更加熟練Android的技木和萇它在市場上的特點。1.1開發(fā)環(huán)現(xiàn)Eclipse、AndroidSDK3.2.0分析2.1劭能刑來(用例BB分祈J極據(jù)項目的目標,我們可獲得頊目系:統(tǒng)的基本需來,以下從不同角度來描述柔統(tǒng)的霜來,喬且茨用用例圖耒描述,菜統(tǒng)的功能需來,費.DT分慶四郃分耒概括,即播枚器的基本控制霜要,播放列表營理需來,播放器友好惟需來和播放器擴展卡需來。嘆下分刃描連:2.1.1援枚豳的用円0E假設(shè)安裝T音樂播放謂的用尸是菜統(tǒng)的主要段計對象,萇擁有玖下操作,啟動欽件、播放音樂、暫停播放、停止播枚、返凹欽件,基用例圖如下?2.1播欣路碁忝用陽國2.1.2用洌分析~~用例名稱:啟動軟件~~參與者:用戶U標:使得用戶啟動軟件并加載手機和sd卡上的音頻文件到播放列表~~前置條件:無

基本事件流:1.用戶啟動軟件2.播放器將播放列表中的當前的歌曲用例名稱:播放參與者:用戶目標:使得用戶可以播放在播放列表中選中的歌曲前置條件:播放器正在運行基本事件流:1.用戶單擊“播放”按鈕2.播放器將播放列表中的當前的歌曲用例名稱:暫停參與者:用戶目標:使得用戶可以暫停正在播放的歌曲前置條件:歌曲正在播放且未停止和暫?;臼录鳎?.用戶單擊“暫停”按鈕2.播放器將暫停當前的歌曲用例名稱:停止參與者:用戶目標:使得用戶可以停止正在播放的歌曲前置條件:歌曲正在播放或暫?;臼录鳎?.用戶單擊“停止”按鈕2.播放器將停止當前播放的歌曲用例名稱:退出參與者:用戶目標:使得用戶退出或者后臺播放音樂前置條件:程序在運行基本事件流:1.用戶按返回鍵2.播放器退出或者進入后臺播放3?薇與說計3.1秋件播SC流程0BStepl.啟動欽件后,釈件自動檢索手機和sd卡的音頻文件,養(yǎng)組織顯示慶列表.Step2.原:去列表的歙曲名字。Step3.播枚音樂。Step4.點去暫停,音樂暫停Step5.眾去播放轉(zhuǎn)彩step3Step6.眾去停止停止播放音樂Step7.眾去返凹。啟動軟件自動檢索手機中的暫停/退出軟件圖34?界面汞4.1秋件部署系:統(tǒng)編譯生慶apk文件,將apk文件拷到手機茨看sd卡中,直接打開即可安裝。4?2啟動秋件打開欽件后的界面4.3歆曲對JR界面歙曲列表界面4.4播放珮面嘆下給凹功能實現(xiàn)代碼,布爲,風裕等代碼量過大,放在壓縮文件中文件夾顯示文件如圖所示PHfttr>加心Q詁炭 -口PHfttr>加心Q詁炭 -口d? 0肌叨g? 3? *The*r*?播敖器頁面布爲Main.xmlT弋碼如下歐陽與創(chuàng)編 歐陽與創(chuàng)編 2021.03.08android:layout_width=android:layout_width=r\vmp_c^to?fr歐陽與創(chuàng)編 2021.03.08歐陽與創(chuàng)編 歐陽與創(chuàng)編 2021.03.08android:secondaryProgress=nandroid:secondaryProgress=n0"歐陽與創(chuàng)編 2021.03.08<LinearLayoutxmlns:android=n/?z//?:/Zvc/?(?777U5.6//7Jr€>zJ.com/apk/res/androiclnandroid:orientation="verticalnandroid:layout_width=7z//parent"android:layout_height=7?//_parentuandroid:background="@ 加刃初"><ListViewandroid:id=u@+i(J/an(Jroicl:listnandroid:layout_width=ufillparentnandroid:layout_height=”200clip"android:layout_weight=r7Handroid:drawSelectorOnTop=ryi//5e,r/><SeekBarandroid:id=,f@+id/SeekBar01"android:layout_height=zWt//2_c(7nfe/?rnandroid:layout_width=7z//parent"android:max="100”android:progress=nCandroid:visibility=uvisible99/><TextViewandroid:layout_height=Hwrap_contentnandroid:layout_width=ufill_parentuandroid:id=n@+id/currentProgress"/><TextViewandroid:layout_height=/W6/p_ranto?rnandroid:layout_width=ufillparent"android:layout_y=”300dp"android:id="@+,必7/打帀疋 加"/><LinearLayoutandroid:orientation=r77<7nz^Z€//nandroid:layout_width=ry?//_parent"android:layout_height='Wt/p_cf?nf(?/?rn>vlmageButtonandroid:id=zr@"歐陽與創(chuàng)編 歐陽與創(chuàng)編 2021.03.08歐陽與創(chuàng)編 歐陽與創(chuàng)編 2021.03.08歐陽與創(chuàng)編 歐陽與創(chuàng)編 2021.03.08android:layout_height="wrapcontentandroid:layout_height="wrapcontent99歐陽與創(chuàng)編 2021.03.08android:layout_height=/W6/p_c6>n^?rnandroid:layout_marginLeft=z70(77/?nandroid:background=u@drawable/firstlf7>vlmageButtonandroid:id="@+i(J/stop_button,randroid:layout_width=nwrap_contentnandroid:layout_height=/W6/p_c<?n^z?rnandroid:backgi?ound="@〃swab/必切/"android:layout_marginLeft=z706///?n/>vlmageButtonandroid:id=n@+id/start_button"android:layout_width=r\rm/?_ra/?^/7frandroid:layout_height=/W6/p_c6>n^?rnandroid:background="@dmwdb滄Zyfd”,"android:layout_marginLeft=u10dipn/>vlmageButtonandroid:id="@+沏仇山血_加存67"android:layout_width=r\vm/?_c(7Hto7frandroid:backgi?ouiid="@〃swb/叨os刃"android:layout_marginLeft=z70(77/?n/>vlmageButtonandroid:id="@+j伽如android:layout_width=nwrap_contentnandroid:layout_height=/W6/p_c<?n^z?rnandroid:backgi?ound="@〃s化"android:layout_marginLeft=z706///?n/></LinearLayout></LinearLayout>MainActivity.JavaTt碼如下importjava.io.File;importjava.io.FilenameFilter;importjava.io.IOException;importjava.util.ArrayList;importjava.util.List;importandroid.app.ListActivity;importandroid.graphics.Color;importandroid.graphics.drawable.GradientDrawable;importandroid.graphics.drawable.GradientDrawable.Orientation;importandroid.media.MediaPlayer;importandroid.media.MediaPlayer.OnCompletionListener;importandroid.os.Bundle;importandroid.os.Handler;importandroid.view.KeyEvent;importandroid.view.View;importandroid.view.View.OnClickListener;importandroid.widget.ArrayAdapter;importandroid.widget.ImageButton;importandroid.widget.ListView;importandroid.widget.SeekBar;importandroid.widget.SeekBar.OnSeekBarChangeListener;importandroid.widget.TextView;publicclassMainActivityextendsListActivity{privateImageButtonmFrontlmageButton=null;privateImageButtonmStopImageButton=null;privateImageButtonmStartlmageButton=null;privateImageButtonmPauselmageButton=null;privateImageButtonmNextlmageButton=null;/*定義迸Shandler,顯示百分比迸度*/HandlermPercentHandler=newHandler();privateSeekBarmSeekBar=null;privateTextViewcurProgressText=null;privateTextViewcurtimeAndTotaltime=null;publicMediaPlayermMediaPlayer;privateList<String>mMusicList=newArrayList<String>();privateintcurrentListltem=0;privatestaticfinalStringMUSIC_PATH=newStringC'/sdcard/'1);@OverridepublicvoidonCreate(BundlesavedlnstanceState){super.onCreate(savedlnstanceState);setContentView(R.layout.main);musicList();mMediaPlayer=newMediaPlayer();initmFrontMusic();initStopMusic();initStartMusic();initPauseMusic();initNextMusic();initSeekBar();}publicvoidinitmFrontMusic(){mFrontlmageButton =(ImageButton)findViewById(R.id.front_button);mFrontlmageButton.setOnClickListener(newOnClickListener(){publicvoidonClick(ViewargO){if(-currentListItem>=0){currentListltem=mMusicList.size();}else{playMusic(MUSIC_PATH +mMusicList.get(currentListltem));歐陽與創(chuàng)編 歐陽與創(chuàng)編 2021.03.08歐陽與創(chuàng)編 歐陽與創(chuàng)編 2021.03.08歐陽與創(chuàng)編 歐陽與創(chuàng)編 2021.03.08(ImageButton)findViewById(R.id.start_button);歐陽與創(chuàng)編 (ImageButton)findViewById(R.id.start_button);歐陽與創(chuàng)編 2021.03.08});}publicvoidinitStopMusic(){mStopImageButton(ImageButton)findViewById(R.id.stop_button);mStopImageButton.setOnClickListener(newOnClickListener(){publicvoidonClick(ViewargO){if(mMediaPlayer.isPlaying()){mMediaPlayer.reset();}}});}publicvoidinitStartMusic(){mStartlmageButtonmStartImageButton.setOnClickListener(newOnClickListener(){publicvoidonClick(ViewargO){playMusic(MUSIC_PATHmMusicList.get(currentListltem));startSeekBarUpdate();}});}publicvoidinitPauseMusic(){mPauselmageButton(ImageButton)findViewById(R.id.pause_button);mPauselmageButton.setOnClickListener(newOnClickListener(){publicvoidonClick(ViewargO){if(mMediaPlayer.isPlaying()){mMediaPlayer.pause();}else{mMediaPlayer.start();});}publicvoidinitNextMusic(){mNextlmageButton(ImageButton)findViewById(R.id.next_button);mNextImageButton.setOnClickListener(newOnClickListener(){publicvoidonClick(ViewargO){nextMusic();}});}publicvoidinitSeekBar(){/*初始T匕起動條和為前迸度顯示值*/mSeekBar=(SeekBar)findViewById(R.id.SeekBar01);curProgressText=(TextView)findViewById(R.id.currentProgress);curtimeAndTotaltime=(TextView)findViewById(R.id.curtimeandtotaltime);mSeekBar.setOnSeekBarChangeListener(newOnSeekBarChangeListener(){publicvoidonProgressChanged(SeekBarseekBar,intprogress,booleanfromUser){/*如果抱動迸度友生改變,則顯示肖前迸廣值*/curProgressText.setText(H前迸度:”+progress);}publicvoidonStartTrackingTouch(SeekBarargO){curProgressText.setText(n?£動中...”);}publicvoidonStopTrackingTouch(SeekBarargO){intdest=mSeekBar.getProgress();intmMax=mMediaPlayer.getDuration();intsMax=mSeekBar.getMax();mMediaPlayer.seekTo(mMax*dest/sMax);}});}privatevoidplayMusic(Stringpath){try{mMediaPlayer.reset();mMediaPlayer.setDataSource(path);mMediaPlayer.prepareO;mMediaPlayer.start();mMediaPlayer.setOnCompletionListener(newOnCompletionListener(){publicvoidonCompletion(MediaPlayerargO){nextMusic();}});}catch(IOExceptione){e.printStackTrace();歐陽與創(chuàng)編 歐陽與創(chuàng)編 2021.03.08歐陽與創(chuàng)編 歐陽與創(chuàng)編 2021.03.08歐陽與創(chuàng)編 歐陽與創(chuàng)編 2021.03.08returnsuper.onKeyDown(keyCode,event);歐陽與創(chuàng)編 returnsuper.onKeyDown(keyCode,event);歐陽與創(chuàng)編 2021.03.08privatevoidnextMusic(){if(++currentListItem>=mMusicList.size()){currentListltem=0;}else{playMusic(MUSIC_PATH +mMusicList.get(currentListltem));}}?OverridepublicbooleanonKeyDown(intkeyCode,KeyEventevent){if(keyCode ==KeyEvent.KEYCODE_BACK){mMediaPlayer.stop();mMediaPlayer.release();}?OverrideprotectedvoidonListItemClick(ListView1,Viewv,intposition,longid){currentListltem=position;playMusic(MUSIC_PATH +mMusicList.get(position));super.onListItemClick(l,v,position,id);}〃播放刃表publicvoidmusicList(){Filehome=newFile(MUSIC_PATH);if(home.listFiles(newMusicFilter()).length>0){for(Filefile:home.listFiles(newMusicFilter())){mMusicList.add(file.getName());}ArrayAdapter<String>musicList=newArrayAdapter<String>(MainActivity.this,R.layout.musicitem.mMusicList);setListAdapter(musicList);}}/*更新抱動條迸度*/publicvoidstartSeekBarUpdate(){mPercentHandler.post(start);

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論