Установка атрибута max ползунка входного диапазона с помощью js в проекте howler.js - PullRequest
0 голосов
/ 29 января 2019

У меня есть аудиоплеер, который я делаю с помощью howler.js. Я динамически устанавливаю атрибут max ползунка входного диапазона с помощью запроса J.

Я могу установить максимальное значение, соответствующее audio.duration.().

Пример. Если источником звука является 177,777 секунд, я задаю для него атрибут max.С помощью инспектора разработчиков я вижу, что атрибут max изменяется.

Это здорово, но.

Проблема в том, что когда я изменяю атрибут max, ползунок не отражает его.

Ползунок отражает только то, что является исходным жестко заданным значением max = "100".

Поэтому, если я перемещаю ползунок, а длина звука, например, составляет 177,777 секунд, слайдер заканчивается перед звуком, другими словамидлительность звука не будет соответствовать или наоборот, если я установлю max = "1000", ползунок достигает только 10% до окончания звука.

Ширина ползунка css установлена ​​на 100%,это не проблема.

Я не уверен, что именно так howler.js создает экземпляр звукового объекта ревуна, или, если это что-то еще, мне нужно, возможно, также сбросить атрибут значения входного диапазона?любая помощь приветствуется.

ниже приведены примеры кода:

HTML: <input id="song1" class="songSlider" type="range" value="0" min="0" step="1" max="1000">

JS:

sound[soundid] = new Howl({
      src: ['../audio/' + musicIdentifier],
      volume: 0.8,
      onload: function() {
      $('input[type=range]').attr('max', sound[soundid].duration());


      }
    });

1 Ответ

0 голосов
/ 30 января 2019

Я понял, надеюсь, это поможет кому-то с такой же проблемой.

Мне нужно было получить текущее значение ползунка диапазона, затем разделить его на мой текущий атрибут max, а затем умножить это на audio.duration:

пример:

var $max = $('input[type=range]').attr('max');
$songCurrentTime = $(".songSlider").val();
$newCurentTmeValue = ($songCurrentTime / $max) * currentAudioPlaying.duration();
...