gpt4 book ai didi

javascript - 如何在 JavaScript 中更改音频的位置?

转载 作者:行者123 更新时间:2023-12-03 04:49:34 26 4
gpt4 key购买 nike

我正在尝试使用 slider 来更改音轨的位置。我遇到的问题是,当我将鼠标放在 slider 上时,音频只是停止而不是改变位置。我尝试删除 addeventlistener 结束函数,但这并没有解决问题。

任何帮助将不胜感激。

HTML:

<audio id="music">
<source src="media/mexico-music.mp3" type="audio/mpeg"/>
</audio>
<button id="playpausebtn" class="play"></button>
<input id="seekslider" type="range" min="0" max="100" value="0" step="1">
<input id="volumeslider" type="range" min="0" max="100" value="100" step="1">

JavaScript:

$(document).ready(function () {
var music = document.getElementById("music"),
playpausebtn = document.getElementById("playpausebtn"),
seekslider = document.getElementById("seekslider"),
volumeslider = document.getElementById("volumeslider"),
seeking,
seekto;

// PLAY/PAUSE AUDIO
function playAudio() {
if (music.paused) {
music.play();
playpausebtn.className = "pause";
} else {
music.pause();
playpausebtn.className = "play";
}
music.addEventListener('ended', function () {
playpausebtn.className = "Play";
});
}

// SEEK MUSIC POSITION
function seek(event) {
if(seeking) {
seekslider.value = event.clientX = seekslider.offsetLeft;
seekto = music.duration * (seekslider.value / 100);
music.currentTime = seekto;
}
}

// VOLUME CONTROL
function setVolume() {
music.volume = volumeslider.value / 100;
}

//EVENT HANDLERS
playpausebtn.addEventListener("click", playAudio);
seekslider.addEventListener("mousedown", function (event) { seeking = true; seek(event); });
seekslider.addEventListener("mousemove", function (event) { seek(event); });
seekslider.addEventListener("mouseup", function () { seeking = false; });
volumeslider.addEventListener("mousemove", setVolume);
});

最佳答案

我建议删除以下行:

seekslider.value = event.clientX = seekslider.offsetLeft;

这是因为您在使用 seekslider 之前设置了它的值,这会适得其反,因为下一行 music.duration * (seekslider.value/100); 完全符合您的要求。

关于javascript - 如何在 JavaScript 中更改音频的位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42718685/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com