具体代码
MainAcitvity.java
private MediaPlayer mediaPlayer;
private SeekBar sb_main_bar;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_mp3);
sb_main_bar = (SeekBar) findViewById(R.id.sb_main_bar);
//进度条的点击事件
sb_main_bar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int i, boolean b) {
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
int progress=seekBar.getProgress();
//在当前位置播放
mediaPlayer.seekTo(progress);
}
});
}
public void isPlayOrPause(View view){
final ImageButton imageButton= (ImageButton) view;
if(mediaPlayer==null){
//播放内存中音频
mediaPlayer = MediaPlayer.create(this, R.raw.f);
//设置准备完成的监听
mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mediaPlayer) {
//下载操作(复制)
mediaPlayer.start();
imageButton.setImageResource(android.R.drawable.ic_media_pause);
//获取音乐的总时长
int duration=mediaPlayer.getDuration();
//将进度条设置最大值为:音乐的总时长
sb_main_bar.setMax(duration);
new MyThread().start();
}
});
}else if(mediaPlayer.isPlaying()){
mediaPlayer.pause();
imageButton.setImageResource(android.R.drawable.ic_media_play);
}else{
mediaPlayer.start();
imageButton.setImageResource(android.R.drawable.ic_media_pause);
}
}
class MyThread extends Thread{
@Override
public void run() {
super.run();
while(sb_main_bar.getProgress()<=sb_main_bar.getMax()){
//获取音乐当前播放的位置
int position=mediaPlayer.getCurrentPosition();
sb_main_bar.setProgress(position);
}
}
}
}