【问题标题】:how to update audio progress to minutes如何将音频进度更新为分钟
【发布时间】:2018-09-11 14:35:14
【问题描述】:

目前在我的应用程序中,媒体播放正确,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.text.format.DateUtils文档
  • @pskink .. 我已经问了这个问题,因为我无法理解这个概念。如果你能让它变得更简单,而不是仅仅提供建议。它会很棒......跨度>
  • 那你查看官方文档了吗?
  • 是的..你能按照我的要求简化吗..如果你能解释一下要做什么改变..
  • 好的,您在阅读文档后有什么问题?什么不清楚?

标签: android android-mediaplayer textview android-seekbar


【解决方案1】:

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

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

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

【讨论】:

  • 感谢代码的简化版本......我在下面编辑了我的答案......
【解决方案2】:

上面的 cmets 中 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)));
}

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-05
    • 1970-01-01
    • 1970-01-01
    • 2010-09-28
    • 2017-12-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多