java - Android Mediaplayer - 基于seekbar进度更新textview中音频播放时间

标签 java android textview media-player

使用 Mediaplayer 播放音频文件。

一切正常,但需要在 TextView 中更新音频的播放时间。

textview.setText(mediaplayer.getCurrentPosition()/100000.0).toString();

这给出了 double 值,但如果结束时间超过一分钟并且耗时为 1 分钟,则它显示 0:60... 但它应该为 1:00...

有没有其他方法可以根据搜索栏进度显示耗时?

谢谢。

最佳答案

这有效-从另一篇文章中获取的答案: How do I correctly display the position/duration of a MediaPlayer?

DateFormat 适用于日期,不适用于时间间隔。因此,如果您获得 1 秒的位置,数据格式会将其解释为日期/时间是日历开始后 1 秒。


private String getTimeString(long millis) {
    StringBuffer buf = new StringBuffer();

    int hours = millis / (1000*60*60);
    int minutes = ( millis % (1000*60*60) ) / (1000*60);
    int seconds = ( ( millis % (1000*60*60) ) % (1000*60) ) / 1000;

    buf
        .append(String.format("%02d", hours))
        .append(":")
        .append(String.format("%02d", minutes))
        .append(":")
        .append(tring.format("%02d", seconds));

    return buf.toString();
}

然后做类似的事情


totalTime.setText(getTimeString(duration));
currentTime.setText(getTimeString(position));

关于java - Android Mediaplayer - 基于seekbar进度更新textview中音频播放时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5418644/

相关文章:

java - X 射线跟踪未从 ec2 中出现,出现异常

java - Android或iPhone开发有必要学习J2ME吗?

java - CompareTo 的通用比较类型

javascript - 在 Android 的移动浏览器中向下滚动时,网站不会隐藏地址栏

android - 带有 React Native 的 Google map 面板

java - 将 JSON 解析为 TextView

java - 从 Bd 中分割并创建树

Android 字符串格式 - 价格

android - 当布局具有属性 android : layout_height = "wrap_content"? 时,如何在布局底部设置元素

android - TextView 字幕不起作用