android seekbar自动动,android上的Seekbar不会自动移动

Android Building Audio Player Tutorial中,请参阅更新SeekBar进度和计时器一节

/**

* Update timer on seekbar

* */

public void updateProgressBar() {

mHandler.postDelayed(mUpdateTimeTask, 100);

}

/**

* Background Runnable thread

* */

private Runnable mUpdateTimeTask = new Runnable() {

public void run() {

long totalDuration = mp.getDuration();

long currentDuration = mp.getCurrentPosition();

// Displaying Total Duration time

songTotalDurationLabel.setText(""+utils.milliSecondsToTimer(totalDuration));

// Displaying time completed playing

songCurrentDurationLabel.setText(""+utils.milliSecondsToTimer(currentDuration));

// Updating progress bar

int progress = (int)(utils.getProgressPercentage(currentDuration, totalDuration));

//Log.d("Progress", ""+progress);

songProgressBar.setProgress(progress);

// Running this thread after 100 milliseconds

mHandler.postDelayed(this, 100);

}

};

/**

*

* */

@Override

public void onProgressChanged(SeekBar seekBar, int progress, boolean fromTouch) {

}

/**

* When user starts moving the progress handler

* */

@Override

public void onStartTrackingTouch(SeekBar seekBar) {

// remove message Handler from updating progress bar

mHandler.removeCallbacks(mUpdateTimeTask);

}

/**

* When user stops moving the progress hanlder

* */

@Override

public void onStopTrackingTouch(SeekBar seekBar) {

mHandler.removeCallbacks(mUpdateTimeTask);

int totalDuration = mp.getDuration();

int currentPosition = utils.progressToTimer(seekBar.getProgress(), totalDuration);

// forward or backward to certain seconds

mp.seekTo(currentPosition);

// update timer progress again

updateProgressBar();

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值