sound.pos() Метод Howler возвращает объект, но мне нужно целое число или строка

Я пытаюсь вывести текущее время трека на HTML-страницу, используя Howler, но в данный момент он просто отображает [Object object]. Соответствующий код:

$(document).ready(function() {
    var position = 0;
    var sound = new Howl({
        src: ["audiofiles/" + $(xml).find('mp3').text()],
        autoplay: true,
        loop: true,
        volume: 0.5,
            onload: function () {
                console.log("LOADED");
            }
        });
        // Output and update current track time as song plays
        position = sound.pos();
        document.getElementById("current_time").innerHTML = position;

Как извлечь информацию о времени дорожки в формате, который полезен для вывода на страницу HTML? Желательно так: [мм / сс].

Я также пытался sound.seek() который также выводит объект.

призвание toString() на position Переменная yields: [объект Undefined], когда HTML загружается в браузер, и вызывает JSON.stringify() это просто приводит к тому, что я предполагаю, что это пустая строка (вообще ничего не выводит на веб-страницу).

1 ответ

Похоже, вы используете howler.js 2.0, который изменил API для использования seek() скорее, чем pos(), Тем не менее, это просто поможет получить значение поиска в тот момент, вы несете ответственность за его обновление в своем HTML-формате в нужном вам темпе (посмотрите на пример проигрывателя).

Соответствующий код из примера настроен для вашего сценария:

function step() {
  // Get the current position and format it however you would like.
  var seek = sound.seek() || 0;
  document.getElementById("current_time").innerHTML = self.formatTime(Math.round(seek));

  // Update the value on each frame.
  if (sound.playing()) {
    requestAnimationFrame(step);
  }
}
Другие вопросы по тегам