您的位置:首页 > 移动开发 > Android开发

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














                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐