首页 > 解决方案 > 如何以适当的方式显示时间(分钟:秒)?

问题描述

我正在编写媒体播放器应用程序,但时间(用于搜索栏)显示不正确。计算是否有错误?如何调整代码中的时间?

private void updateSeekBar() {
    seekBar.setProgress((int)(((float)mediaPlayer.getCurrentPosition() / mediaFileLength)*100));
    if(mediaPlayer.isPlaying())
    {
        Runnable updater = new Runnable() {
            @Override
            public void run() {
                updateSeekBar();
                realtimeLength-=1000; // declare 1 second
                textView.setText(String.format("%d:%d", TimeUnit.MILLISECONDS.toMinutes(realtimeLength),
                        TimeUnit.MILLISECONDS.toSeconds(realtimeLength) -
                                TimeUnit.MILLISECONDS.toSeconds(TimeUnit.MILLISECONDS.toMinutes(realtimeLength))));

            }

        };
        handler.postDelayed(updater,1000); // 1 second
    }
}

标签: androidandroid-studioandroid-mediaplayermedia-player

解决方案


您计算的秒数不正确。您需要将分钟乘以 60,然后从总秒数中减去它,以获得这一分钟的秒数。

TimeUnit.MILLISECONDS.toSeconds(realtimeLength) - 60 * TimeUnit.MILLISECONDS.toMinutes(realtimeLength)

这应该有效。您应该使用 Debugger 尝试调试输出不正确的原因。


推荐阅读