首页 > 解决方案 > 如何将音频进度更新为分钟

问题描述

目前在我的应用程序中,媒体播放正确,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等等...

如何x在媒体播放 0.59 秒后将 的值更新为 0..

简而言之

我将 textView 值作为

0:00 到 0:59 然后 0:60 ...

我想要它作为

0:00 到 0:59 然后 1:00

标签: androidandroid-mediaplayertextviewandroid-seekbar

解决方案


在上面的评论和这个链接参考中, pskink提出了建议。

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

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

希望这可以帮助某人...


推荐阅读