Android 播放器中容易用到的进度条(音量控制,播放进度)
2011-08-07 17:30
399 查看
播放器中的的两个常用的进度条, 1,显示当前播播放器中的的两个常用的进度条, 1,显示当前播放进度 2,显示当前音量 packagerw.test; importjava.io.IOException; importandroid.app.Activity; importandroid.media.AudioManager; importandroid.media.MediaPlayer; importandroid.os.Bundle; importandroid.os.Handler; importandroid.view.View; importandroid.view.View.OnClickListener; importandroid.widget.Button; importandroid.widget.SeekBar; importandroid.widget.SeekBar.OnSeekBarChangeListener; importandroid.widget.TextView; publicclassTestMusicActivityextendsActivity{ /**Calledwhentheactivityisfirstcreated.*/ privateSeekBarSoundseekBar,ProceseekBar2; privateButtonbutton; privateMediaPlayermediaPlayer; privateTextViewnowPlayTime,allTime,volumeView,maxVolumeTextView; privateAudioManageraudioManager; @Override publicvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.main); ProceseekBar2=(SeekBar)findViewById(R.id.seekBar1); SoundseekBar=(SeekBar)findViewById(R.id.seekBar2); button=(Button)findViewById(R.id.button1); nowPlayTime=(TextView)findViewById(R.id.textView1); allTime=(TextView)findViewById(R.id.textView2); volumeView=(TextView)findViewById(R.id.textView3); maxVolumeTextView=(TextView)findViewById(R.id.textView4); button.setOnClickListener(newButtonListener()); mediaPlayer=newMediaPlayer(); audioManager=(AudioManager)getSystemService(AUDIO_SERVICE);//获取音量服务 intMaxSound=audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);//获取系统音量最大值 maxVolumeTextView.setText(String.valueOf(MaxSound)); SoundseekBar.setMax(MaxSound);//音量控制Bar的最大值设置为系统音量最大值 intcurrentSount=audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);//获取当前音量 SoundseekBar.setProgress(currentSount);//音量控制Bar的当前值设置为系统音量当前值 SoundseekBar.setOnSeekBarChangeListener(newSeekBarListener()); ProceseekBar2.setOnSeekBarChangeListener(newProcessBarListener()); } classButtonListenerimplementsOnClickListener{ @Override publicvoidonClick(Viewv){ //TODOAuto-generatedmethodstub if(mediaPlayer.isPlaying()){ mediaPlayer.pause(); } else{ try{ mediaPlayer.reset(); mediaPlayer.setDataSource("/sdcard/test.mp3"); mediaPlayer.prepare(); mediaPlayer.start(); StrartbarUpdate(); intAlltime=mediaPlayer.getDuration(); allTime.setText(ShowTime(Alltime)); }catch(IllegalArgumentExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); }catch(IllegalStateExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); }catch(IOExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } } } } //播放进度条 classProcessBarListenerimplementsOnSeekBarChangeListener{ @Override publicvoidonProgressChanged(SeekBarseekBar,intprogress, booleanfromUser){ //TODOAuto-generatedmethodstub if(fromUser==true){ mediaPlayer.seekTo(progress); nowPlayTime.setText(ShowTime(progress)); } } @Override publicvoidonStartTrackingTouch(SeekBarseekBar){ //TODOAuto-generatedmethodstub } @Override publicvoidonStopTrackingTouch(SeekBarseekBar){ //TODOAuto-generatedmethodstub } } //音量进度条 classSeekBarListenerimplementsOnSeekBarChangeListener{ @Override publicvoidonProgressChanged(SeekBarseekBar,intprogress, booleanfromUser){ //TODOAuto-generatedmethodstub if(fromUser){ intSeekPosition=seekBar.getProgress(); audioManager.setStreamVolume(AudioManager.STREAM_MUSIC,SeekPosition,0); } volumeView.setText(String.valueOf(progress)); } @Override publicvoidonStartTrackingTouch(SeekBarseekBar){ //TODOAuto-generatedmethodstub } @Override publicvoidonStopTrackingTouch(SeekBarseekBar){ //TODOAuto-generatedmethodstub } } //时间显示函数,我们获得音乐信息的是以毫秒为单位的,把把转换成我们熟悉的00:00格式 publicStringShowTime(inttime){ time/=1000; intminute=time/60; inthour=minute/60; intsecond=time%60; minute%=60; returnString.format("%02d:%02d",minute,second); } Handlerhandler=newHandler(); publicvoidStrartbarUpdate(){ handler.post(r); } Runnabler=newRunnable(){ @Override publicvoidrun(){ //TODOAuto-generatedmethodstub intCurrentPosition=mediaPlayer.getCurrentPosition(); nowPlayTime.setText(ShowTime(CurrentPosition)); intmMax=mediaPlayer.getDuration(); ProceseekBar2.setMax(mMax); ProceseekBar2.setProgress(CurrentPosition); handler.postDelayed(r,100); } }; }
//把一个名字为test.mp3的文件上传到系统中去,你们懂的.....
00:37当前播放时间
04:16音乐总时间
11当前音量
15总音量
//如有疑问,
本人QQ:812200157
相关文章推荐
- Android 播放器中容易用到的进度条[音量控制,播放进度]
- Android 播放器中容易用到的进度条[音量控制,播放进度]
- 【Android】Android开发实现进度条效果,SeekBar的简单使用。音量,音乐播放进度,视频播放进度等
- [置顶] 【Android】Android开发实现进度条效果,SeekBar的简单使用。音量,音乐播放进度,视频播放进度等
- android播放器音量控制-使用震动示例代码-进度条控制音量
- 简单的Android音乐播放,解决incall类型不能通过音量按键控制声音大小的问题
- Android自带Music播放器更新播放时间和进度条的方法
- 基于android的网络音乐播放器-播放控制界面(九)
- Android中的Audio播放:音量和远程播放控制
- Android开发——ProgressBar进度条进度控制
- Android官方开发文档Training系列课程中文版:管理音频播放之控制APP的音量与播放
- Android实战 - 音心播放器 (通知实现音乐的播放/暂停/下一曲控制)
- Android中的Audio播放:音量和远程播放控制
- Android控制所有播放器的音频切换上下首歌、播放、停止
- Android 超简单音乐播放器(七)拖动歌曲进度条~音量控制~
- Android---控制多媒体应用程序的音量和播放
- 【Android Developers Training】 44. 控制你应用的音量和播放
- EasyPlayerPro windows播放器本地音频播放音量控制实现
- Android中的Audio播放:音量和远程播放控制
- Android音乐编程:控制应用程序的音量和播放