Parsing and showing HTML audio current time with javascript - Stack Overflow

I'm working on a plain JavaScript + HTML audio player and at this time I want to build a interface

I'm working on a plain JavaScript + HTML audio player and at this time I want to build a interface that show the current time of the audio in the form "MM:SS". For what I could search the HTML Audio/Video DOM Reference has only one native function - audio|video.currentTime - that return the current audio time in seconds with a large decimal precision.

In order to do this I code:

HTML

<audio id='audio' src=".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);

I tried a bunch of thing but I could not format the output the way I wanted. Hope some of you guys can bring some light on this.

Codepen sample

I'm working on a plain JavaScript + HTML audio player and at this time I want to build a interface that show the current time of the audio in the form "MM:SS". For what I could search the HTML Audio/Video DOM Reference has only one native function - audio|video.currentTime - that return the current audio time in seconds with a large decimal precision.

In order to do this I code:

HTML

<audio id='audio' src="http://www.stephaniequinn./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);

I tried a bunch of thing but I could not format the output the way I wanted. Hope some of you guys can bring some light on this.

Codepen sample

Share Improve this question asked Apr 20, 2016 at 19:29 João Paulo SaragossaJoão Paulo Saragossa 3133 silver badges18 bronze badges
Add a ment  | 

2 Answers 2

Reset to default 7

Working edited CodePen

Just needed a little math! JS below:

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);

I think this is the most elegent way:

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

timer.innerHTML = ('0' + minutes).substr(-2) + ':' + ('0' + seconds).substr(-2);

发布者:admin,转转请注明出处:http://www.yc00.com/questions/1744686409a4587943.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信