目前在我的应用程序中媒体播放正确,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);
}
但我从一开始就把textView作为"1.00"
。并且在0.59秒之后..它显示为1:060
1:061
等...
如何在媒体播放0.59秒后将x
的值更新为0 ..
简而言之
我得到的textView值为
0:00到0:59然后0:60 ...
我想要它
0:00至0:59然后1:00
如果x
是以秒为单位的时间,那么这条简单的线应该可行。
seekBarHint.setText(String.format(secondsToString(x))
private String secondsToString(int pTime) {
return String.format("%02d:%02d", pTime / 60, pTime % 60);
}
我更新下面的代码对我有用:
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)));
}
希望这可以帮助某人......