html5 получить продолжительность звука в формате 00:00? - PullRequest
0 голосов
/ 26 ноября 2018

Я пытаюсь получить длительность аудиотега HTML5 в формате 00:00, но я не понимаю, почему мой код получает длительность в этом формате: 0:00.Итак, пропущена 1 цифра!

Это мой текущий код:

$(audio).bind('timeupdate', function(){


  var minutes = parseInt(audio.duration / 60, 10);
  var seconds = parseInt(audio.duration % 60);


  $('.Audio_durationTime').text(minutes + ':' + seconds);



    /////Passed time////
    var mins = Math.floor(audio.currentTime / 60);
    if (mins < 10) {
      mins = '0' + String(mins);
    }
    var secs = Math.floor(audio.currentTime % 60);
    if (secs < 10) {
      secs = '0' + String(secs);
    }

    $('.Audio_passedTime').text(mins + ':' + secs);

});

И рабочая скрипка:

http://jsfiddle.net/8cpwv2mf/6/

Может кто-топожалуйста, совет по этому вопросу?

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 26 ноября 2018

У вас есть этот код для преобразования времени в формат 00:00, но вы используете его только для currentTime.Превратите это в функцию и используйте ее для обоих.

var convertTime = function(time)
{    
    var mins = Math.floor(time / 60);
    if (mins < 10) {
      mins = '0' + String(mins);
    }
    var secs = Math.floor(time % 60);
    if (secs < 10) {
      secs = '0' + String(secs);
    }

    return mins + ':' + secs;
}

$('.Audio_durationTime').text(convertTime(audio.duration));
$('.Audio_passedTime').text(convertTime(audio.currentTime));
0 голосов
/ 26 ноября 2018

Вы можете добавить ноль, если минуты меньше 10 для продолжительности времени:

if (minutes < 10) {
    minutes += "0";
}
$('.Audio_durationTime').text(minutes + ':' + seconds);

Обновленная скрипта:

http://jsfiddle.net/8cpwv2mf/7/

...