#javascript #audio
Вопрос:
Слайдер поиска отлично отслеживает воспроизведение звука, но перемещение «маркера индикатора выполнения» вручную с помощью мыши приводит к тому, что звук переходит к следующей песне.
<input id = "seekslider" type="range" min="1" max="100" value="0" step="1">
let seekslider = document.getElementById("seekslider");
seekslider.addEventListener("mousedown", function(event) { seeking=true; seek(event); });
seekslider.addEventListener("mousemove", function(event) { seek(event); });
seekslider.addEventListener("mouseup", function() { seeking=false; });
function seek(event) {
if(seeking) {
seekslider.value = event.clientX - seekslider.offsetLeft;
seekto = audio.duration * (seekslider.value / 100);
audio.currentTime = seekto;
}
}
function seektimeupdate() {
let nt = audio.currentTime * (100 / audio.duration);
if (isNaN(nt)) return;
seekslider.value = nt;
let curmins = Math.floor (audio.currentTime / 60);
let cursecs = Math.floor (audio.currentTime - curmins * 60);
let durmins = Math.floor (audio.duration / 60);
let dursecs = Math.floor (audio.duration - durmins * 60);
if(cursecs < 10){ cursecs = "0" cursecs; }
if(dursecs < 10){ dursecs = "0" dursecs; }
if(curmins < 10){ curmins = "0" curmins; }
if(durmins < 10){ durmins = "0" durmins; }
curtimetext.innerHTML = curmins ":" cursecs;
durtimetext.innerHTML = durmins ":" dursecs;
}