0

我正在开发一个纯 JavaScript + HTML 音频播放器,此时我想构建一个界面,以“MM:SS”的形式显示音频的当前时间。对于我可以搜索的内容,HTML 音频/视频 DOM 参考只有一个本机函数 -audio|video.currentTime以秒为单位返回当前音频时间,具有较大的小数精度。

为了做到这一点,我编码:

HTML

<audio id='audio' src="http://www.stephaniequinn.com/Music/Canon.mp3" controls></audio>
<div id="timer">00:00</div>

JavaScript

var audio = document.getElementById('audio'),
      timer = document.getElementById('timer');

var update = setInterval(function() {

  timer.innerHTML = audio.currentTime;
}, 10);

我尝试了很多东西,但我无法按照我想要的方式格式化输出。希望你们中的一些人可以对此有所了解。

Codepen 示例

4

2 回答 2

6

工作编辑的 CodePen

只需要一点数学!JS如下:

var update = setInterval(function() {
      var mins = Math.floor(audio.currentTime / 60);
      var secs = Math.floor(audio.currentTime % 60);
      if (secs < 10) {
        secs = '0' + String(secs);
      }
      timer.innerHTML = mins + ':' + secs;
    }, 10);
于 2016-04-20T19:54:57.623 回答
0

我认为这是最优雅的方式:

var seconds = audio.currentTime % 60;
var minutes = Math.floor(audio.currentTime / 60);

timer.innerHTML = ('0' + minutes).substr(-2) + ':' + ('0' + seconds).substr(-2);
于 2016-04-20T19:49:21.380 回答