安卓音乐播放器实现代码_第1页
安卓音乐播放器实现代码_第2页
安卓音乐播放器实现代码_第3页
安卓音乐播放器实现代码_第4页
安卓音乐播放器实现代码_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1.Mp3Player.java文件packagecom.jacky.multimedia;importjava.io.File;importjava.io.FilenameFilter;importjava.io.IOException;importjava.util.ArrayList;importjava.util.List;importandroid.app.ListActivity;importandroid.media.MediaPlayer;importandroid.media.MediaPlayer.OnCompletionListener;importandroid.os.

2、Bundle;importandroid.os.Handler;importandroid.view.KeyEvent;importandroid.view.View;importandroid.widget.ArrayAdapter;importandroid.widget.ImageButton;一|importandroid.widget.ListView;importandroid.widget.SeekBar;importandroid.widget.SeekBar.OnSeekBarChangeListener;importandroid.widget.TextView;publi

3、cclassMp3PlayerextendsListActivity|/*Calledwhentheactivityisfirstcreated.*/*定义5个图像按钮*/privateImageButtonmFrontImageButton=null;privateImageButtonmStartImageButton=null;privateImageButtonmPauseImageButton=null;privateImageButtonmStopImageButton=null;privateImageButtonmNextImageButton=null;/*定义进度handl

4、er,显示百分比进度*/HandlermPercentHandler=newHandler。;/*定义拖动条*/privateSeekBarmSeekBar=null;/*定义显示文本框*/privateTextViewcurProgressText=null;privateTextViewcurtimeAndTotaltime=null;/*定于一个多媒体对象*/publicMediaPlayermMediaPlayer=null;/*定于一个数据播放列表,用来存放从指定文件中搜索到的文件*/privateListmMusicList=newArrayList();|/*定义在播放列表中的当

5、前选择项*/privateintcurrentListItme=0;/*定义要播放的文件夹路径*/privatestaticfinalStringMUSIC_PATH=newString(/mnt/sdcard/);/*Calledwhentheactivityisfirstcreated.*/OverridepublicvoidonCreate(BundlesavedInstanceState)|super.onCreate(savedInstanceState);setContentView(R.layout.main);/*更新播放列表*/musicList();|/*初始化多媒体对象*

6、/mMediaPlayer=newMediaPlayer();/*初始化图像按钮*/mFrontImageButton=(ImageButton)findViewById(R.id.LastImageButton);mStopImageButton=(ImageButton)findViewById(R.id.StopImageButton);mStartImageButton=(ImageButton)findViewById(R.id.StartImageButton);mPauseImageButton=(ImageButton)findViewById(R.id.PauseImageB

7、utton);mNextImageButton=(ImageButton)findViewById(R.id.NextImageButton);/*初始化拖动条和当前进度显示值*/mSeekBar=(SeekBar)findViewById(R.id.SeekBar01);curProgressText=(TextView)findViewById(R.id.currentProgress);curtimeAndTotaltime=(TextView)findViewById(R.id.curtimeandtotaltime);/*监听停止按钮*/mStopImageButton.setOnC

8、lickListener(newImageButton.OnClickListener()OverridepublicvoidonClick(Viewv)/*判断是否正在播放歌曲*/if(mMediaPlayer.isPlaying()/*如果在播放歌曲时,按下开始按钮,则重开开始播放*/mMediaPlayer.reset(););/*监听开始按钮*/mStartImageButton.setOnClickListener(newImageButton.OnClickListener()|(OverridepublicvoidonClick(Viewv)_|/*播放当前选择歌曲,通过list

9、View列表中onListItemClick方法得到选择的时第几项*/playMusic(MUSIC_PATH+mMusicList.get(currentListItme);/*开始播放歌曲时,同步进行更新拖动条进度*/startSeekBarUpdate(););/*监听暂停按钮*/mPauseImageButton.setOnClickListener(newImageButton.OnClickListener()publicvoidonClick(Viewview)if(mMediaPlayer.isPlaying()/*如果有播放歌曲,暂停*/mMediaPlayer.pause(

10、);else|/*如果没有播放歌曲,则开始播放*/mMediaPlayer.start(););/*监听下一首按钮*/mNextImageButton.setOnClickListener(newImageButton.OnClickListener()OverridepublicvoidonClick(ViewargO)nextMusic(););/*监听上一首按钮*/mFrontImageButton.setOnClickListener(newImageButton.OnClickListener()(OverridepublicvoidonClick(Viewarg0)(FrontMu

11、sic();|);/*监听拖动条*/mSeekBar.setOnSeekBarChangeListener(newOnSeekBarChangeListener()(publicvoidonProgressChanged(SeekBarseekBar,intprogress,|booleanfromUser)/TODOAuto-generatedmethodstub_|/*如果拖动进度发生改变,则显示当前进度值*/curProgressText.setText(当前进度:+progress);OverridepublicvoidonStartTrackingTouch(SeekBarseekB

12、ar)/TODOAuto-generatedmethodstub|curProgressText.setText(拖动中.);OverridepublicvoidonStopTrackingTouch(SeekBarseekBar)/TODOAuto-generatedmethodstub|intdest=seekBar.getProgress();intmMax=mMediaPlayer.getDuration();intsMax=mSeekBar.getMax();mMediaPlayer.seekTo(mMax*dest/sMax););/*按键处理时间,当按下返回按键时的处理方法*/p

13、ublicbooleanonKeyDown(intkeyCode,KeyEventevent)(if(keyCode=KeyEvent.KEYCODE_BACK)(mMediaPlayer.stop();mMediaPlayer.release();|this.finish();returntrue;returnsuper.onKeyDown(keyCode,event);|/*ListView选择项监听方法,即当前鼠标在列表中选择的第几项protectedvoidonListItemClick(ListViewl,Viewv,intposition,longid)(currentListIt

14、me=position;playMusic(MUSIC_PATH+mMusicList.get(position);/*更新播放列表*/publicvoidmusicList()/*从指定的路径中读取文件,并与播放列表关联*/Filehome=newFile(MUSIC_PATH);/*读取指定类型的文件,在本程序,指定播放类型为mp3*/if(home.listFiles(newMusicFilter().length0)(/*读取文件*/for(Filefile:home.listFiles(newMusicFilter()(mMusicList.add(file.getName();ne

15、w/*播放文件与播放列表关联*/ArrayAdaptermusicListArrayAdapter(Mp3Player.this,R.layout.musicitme,mMusicList);setListAdapter(musicList);/*播放指定路径中的音乐*/privatevoidplayMusic(Stringpath)(try(/*重置多媒体*/mMediaPlayer.reset();/*读取mp3文件*/mMediaPlayer.setDataSource(path);/*准备播放*/mMediaPlayer.prepare();/*开始播放*/mMediaPlayer.s

16、tart();/*监听播放是否完成*/mMediaPlayer.setOnCompletionListener(newOnCompletionListener()(publicvoidonCompletion(MediaPlayerarg0)/*播放完当前歌曲,自动播放下一首*/nextMusic(););catch(IOExceptione)/*播放下一首*/privatevoidnextMusic()if(+currentListItme=mMusicList.size()currentListItme=0;elseplayMusic(MUSIC_PATH+mMusicList.get(c

17、urrentListItme);/*播放上一首歌曲*/privatevoidFrontMusic()if(-currentListItme=0)currentListItme=0;else(playMusic(MUSIC_PATH+mMusicList.get(currentListltme);)/*更新拖动条进度*/publicvoidstartSeekBarUpdate()|(mPercentHandler.post(start);|)Runnablestart=newRunnable()Overridepublicvoidrun()/TODOAuto-generatedmethodstu

18、bmPercentHandler.post(updatesb);用一个handler更新SeekBar);Runnableupdatesb=newRunnable()Overridepublicvoidrun()/TODOAuto-generatedmethodstub|intposition=mMediaPlayer.getCurrentPosition();intmMax=mMediaPlayer.getDuration();intsMax=mSeekBar.getMax();mSeekBar.setProgress(position*sMax/mMax);curtimeAndTotaltime.setText(当前播放时间:+position/1000+

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论