音乐播放之进度条(An-Better工作室).doc_第1页
音乐播放之进度条(An-Better工作室).doc_第2页
音乐播放之进度条(An-Better工作室).doc_第3页
音乐播放之进度条(An-Better工作室).doc_第4页
音乐播放之进度条(An-Better工作室).doc_第5页
全文预览已结束

下载本文档

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

文档简介

音乐播放之进度条前提* android 自身也提供了该接口 似乎是:MediaController 但看过截图 发现极丑 所以今天就自己写了一个 现于诸位分享分享要求1. 进度条控件打算使用系统提供的SeekBar2. SeekBar 要支持拖拉功能 即:定点播放3. SeekBar 要反映播放位置 即:播放到哪 SeekBar 就在哪原理1. 音乐定点播放:MediaPlayer.seekTo(int msecond) /单位:毫秒2. 音乐文件播放时间:MediaPlayer.getDuration()3. SeekBar 获取位置:SeekBar.getProgress()4. SeekBar 最大值: SeekBar.getMax()代码 步骤1. 定义界面:main.xmlJava代码1. 1*Button:播放控制如:暂停继续2. 1*TextView:显示播放百分比3. 1*SeekBar:进度条4. 1*RadioGroup:显示所有sdcard音乐文件Java代码1. 2. LinearLayoutxmlns:android=/apk/res/android3. android:orientation=vertical4. android:layout_width=fill_parent5. android:layout_height=fill_parent6. 7. LinearLayoutxmlns:android=/apk/res/android8. android:orientation=horizontal9. android:layout_width=fill_parent10. android:layout_height=wrap_content11. 12. 19. 27. 28. 34. 2. View 初始化Java代码1. publicvoidinitialize()2. 3. sBar=(SeekBar)findViewById(R.id.seekb);4. rGroup=(RadioGroup)findViewById(R.id.radio);5. cmdButton=(Button)findViewById(R.id.cmd);6. 7. mPlayer=newMediaPlayer();8. 3. 拖动SeekBar 且播放指定位置的音乐Java代码1. sBar.setOnSeekBarChangeListener(newOnSeekBarChangeListener()2. 3. Override4. publicvoidonProgressChanged(SeekBarseekBar,intprogress,5. booleanfromUser)6. /TODOAuto-generatedmethodstub7. 8. 9. 10. Override11. publicvoidonStartTrackingTouch(SeekBarseekBar)12. /TODOAuto-generatedmethodstub13. 14. 15. Override16. publicvoidonStopTrackingTouch(SeekBarseekBar)17. /TODOAuto-generatedmethodstub18. intdest=seekBar.getProgress();19. 20. intmMax=mPlayer.getDuration();21. intsMax=sBar.getMax();22. 23. mPlayer.seekTo(mMax*dest/sMax);24. 25. 26. 27. );4. 刷新播放位置 且使其实时变化/因为MediaPlayer没有播放进度的回调函数 所以只能:开辟一个Thread 定时通知其刷新Java代码1. publicvoidstartProgressUpdate()2. /开辟Thread用于定期刷新SeekBar3. DelayThreaddThread=newDelayThread(100);4. dThread.start();5. 而该Thread 具体实现为:Java代码1. privateHandlermHandle=newHandler()2. Override3. publicvoidhandleMessage(Messagemsg)4. intposition=mPlayer.getCurrentPosition();5. 6. intmMax=mPlayer.getDuration();7. intsMax=sBar.getMax();8. 9. sBar.setProgress(position*sMax/mMax);10. 11. ;12. 13. publicclassDelayThreadextendsThread14. intmilliseconds;15. 16. publicDelayThread(inti)17. milliseconds=i;18. 19. publicvoidrun()20. while(true)21. try22. sleep(milliseconds);23. catch(InterruptedExceptione)24. /T

温馨提示

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

评论

0/150

提交评论