android - 如何以适当的方式显示时间(分钟:秒)?
问题描述
我正在编写媒体播放器应用程序,但时间(用于搜索栏)显示不正确。计算是否有错误?如何调整代码中的时间?
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
}
}
解决方案
您计算的秒数不正确。您需要将分钟乘以 60,然后从总秒数中减去它,以获得这一分钟的秒数。
TimeUnit.MILLISECONDS.toSeconds(realtimeLength) - 60 * TimeUnit.MILLISECONDS.toMinutes(realtimeLength)
这应该有效。您应该使用 Debugger 尝试调试输出不正确的原因。
推荐阅读
- reactjs - npm install axios 在我的反应原生应用程序中不起作用?
- javascript - 将值附加到不同变量的动态切换案例Javascript
- c# - 循环遍历 IEnumerable
抛出不支持的异常 - google-sheets - HTML 连接函数在 Google 表格中产生奇怪的输出
- azure - Routerprefix 在 Azure Functions 中不起作用
- junit - VertxTestContext 在 4.0.0 中完成
- python - Coremltools 转换 caffemodel 问题
- c# - 检索“Microsoft.Extensions.Caching.Memory.2.1.1”的包元数据时出错
- ghc - 从源代码编译 Idris 失败
- angular - 相关目标茉莉的单元测试用例