Я сделал функцию UpdateTime(x)
, которая обновляет, получает текущее и общее время песни и записывает внутри div
.
Я вызываю эту функцию на onload
( Howler.js ), поэтому он записывает 0:0/song:time
, когда песня загружена, и на onplay
( Howler.js ) с интервалом каждые 50 миллисекунд, поэтому он автоматически обновляет время, когда я начинаю игратьпесня.
Моя проблема в том, что это приведет к бесконечному циклу и эффекту исполнения.
Мой вопрос: Как мне закончить этот бесконечный цикл, когда песня перестает воспроизводиться?
Если у кого-то из вас есть более элегантный подход к обновлению времени с помощью Howler.js , я также был бы признателен.
var songname = new Howl({
src: ['mp3/songname.mp3'],
onload: function() {
UpdateTime(songname);
},
onplay: function() {
setInterval(function(){
UpdateTime(songname);
},50);
}/*,
onend: function() {
maybe end the interval here?...
}*/
});
function UpdateTime(x){
let a = (x.seek()).toFixed();
let a2 = Math.floor(a / 60);
let a1 = a - a2 * 60;
let b = (x.duration()).toFixed();
let b2 = Math.floor(b / 60);
let b1 = b - b2 * 60;
document.getElementById("time").innerHTML=a2+":"+a1+" / "+b2+":"+b1;
}