public class MainActivity extends Activity {
private MediaPlayer player;
private SeekBar sb;
private Timer timer;
private TimerTask task;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
sb = (SeekBar) findViewById(R.id.sb);
timer = new Timer();
task = new TimerTask() {
public void run() {
if(player!=null&&player.isPlaying()){
//进度条当前位置为音乐的播放位置
int CurrentPosition = player.getCurrentPosition();
//进度条的最大值为音乐的总长度
int max = player.getDuration();
sb.setMax(max);
sb.setProgress(CurrentPosition);
}
}
};
//设置播放时进度条seekbar跟着移动
timer.schedule(task, 500,500);
//设置拖拽进度条时,播放音乐改变
sb.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
if( player!=null ){
int currentPosition = seekBar.getProgress();
player.seekTo(currentPosition);
}
}
public void onStartTrackingTouch(SeekBar seekBar) {
}
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
}
});
}
public void play(View view){
try {
if(player==null){
player = new MediaPlayer();
player.setAudioStreamType(AudioManager.STREAM_MUSIC);
player.setDataSource("/mnt/sdcard/a.mp3");
player.prepare();
player.start();
}
} catch (Exception e) {
e.printStackTrace();
}
}
public void pause(View view){
if(player!=null&&player.isPlaying()){
player.pause();
}
}
public void resume(View view){
if(player!=null){
player.start();
}
}
public void restart(View view){
try {
if(player!=null&&player.isPlaying()){
player.reset();
player.setDataSource("/mnt/sdcard/a.mp3");
player.prepare();
player.start();
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void stop(View view){
if(player!=null&&player.isPlaying()){
player.stop();
player=null;
}
}
@Override
protected void onDestroy() {
if(timer != null && task != null){
timer.cancel();
timer = null;
task.cancel();
task = null;
}
if(player!=null&&player.isPlaying()){
player.stop();
player=null;
}
super.onDestroy();
}
}
音乐播放与进度拖拽原理
最新推荐文章于 2023-04-05 22:44:46 发布