如何将音频进度更新为分钟

how to update audio progress to minutes

目前在我的应用程序中,媒体可以正常播放并且 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 to 0:59 then 0:60 ...

我想要它

0:00 to 0:59 then 1:00

根据 pskink in the comments above and this link 参考的建议..

我更新我的代码如下,它对我有用:

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)));
}

希望这可能对某人有所帮助...

如果 x 是以秒为单位的时间,那么这个简单的行应该可以工作。

seekBarHint.setText(String.format(secondsToString(x))

private String secondsToString(int pTime) {
        return String.format("%02d:%02d", pTime / 60, pTime % 60);
    }