版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 取用水领域信用评价指标及评分标准
- 《水文分析与计算》本科题集
- 班子领导在新单位见面会上的讲话
- 石淋与现代艺术融合
- 江苏省苏州市姑苏区2024-2025学年九年级上学期10月月考历史卷(含答案)
- 2024年电银项目资金需求报告代可行性研究报告
- 2023年带钢传输自动纠偏装置资金申请报告
- 2023年自动络筒机投资申请报告
- 2024年实验室仪器装置项目资金筹措计划书代可行性研究报告
- 强化现场6S管理-推进班组建设
- 2024-2030年医疗美容产品行业市场现状供需分析及投资评估规划分析研究报告
- 中小学-消防安全知识教育-课件
- 九年级中考英语数词课件
- 食品生产企业食品安全管理人员考试题库含答案完整版
- 一份完整的投标书
- 宜章莽山景区旅游开发有限公司股东全部权益价值评估项目资产评估报告
- 新质生产力-讲解课件
- 组织行为与领导力智慧树知到期末考试答案2024年
- 30道计量员岗位常见面试问题含HR问题考察点及参考回答
- 基于PLC四层电梯控制系统设计毕业论文
- 我的叔叔于勒(剧本)精编版
评论
0/150
提交评论