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

问题描述 投票:0回答:2

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

android android-mediaplayer textview android-seekbar
2个回答
0
投票

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

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

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.