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

时间:2018-09-11 14:35:14

标签: android android-mediaplayer textview android-seekbar

当前在我的应用中,媒体可以正确播放,并且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

2 个答案:

答案 0 :(得分:0)

带有以上评论中pskink的建议和this链接参考。

我更新下面的代码对我有用:

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