当前在我的应用中,媒体可以正确播放,并且textView也可以完美地更新..在0:00秒内
下面是onProgressChanged
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromTouch) {
seekBarHint.setVisibility(View.VISIBLE);
int x = (int) Math.ceil(progress / 1000f);
if (x < 10)
seekBarHint.setText("0:0" + x);
if (x > 10)
seekBarHint.setText("0:" + x);
}
上面的代码可以正常工作。.
我希望textView计时器在播放0:59秒后更新为1:00
我尝试更新如下代码:
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromTouch) {
seekBarHint.setVisibility(View.VISIBLE);
int x = (int) Math.ceil(progress / 1000f);
if (x < 10)
seekBarHint.setText("0:0" + x);
if (x > 10)
seekBarHint.setText("0:" + x);
if (x >= 60 && x < 70)
x=0;
seekBarHint.setText("1:0" + x);
if (x > 70)
seekBarHint.setText("1:" + x);
}
但是我从一开始就获得了"1.00"
的textView。并且在0.59秒后..显示为1:060
1:061
,依此类推...
如何在媒体播放0.59秒后将x
的值更新为0。
简而言之
我得到的textView值为
0:00到0:59,然后0:60 ...
我希望它为
0:00至0:59,然后1:00
答案 0 :(得分:0)
我更新下面的代码对我有用:
public void SeekUpdation() {
if(mediaPlayer!=null) {
int mpos = mediaPlayer.getCurrentPosition();
seekBar.setProgress(mediaPlayer.getCurrentPosition());
mHandler.postDelayed(run, 1000);
int seconds = (mpos / 1000);
timerTextView.setText(String.format(secondsToString(seconds)));
}
希望这可以帮助某人...
答案 1 :(得分:0)
如果x
是以秒为单位的时间,则此简单行应该有效。
seekBarHint.setText(String.format(secondsToString(x))
private String secondsToString(int pTime) {
return String.format("%02d:%02d", pTime / 60, pTime % 60);
}