0
私は、オーディオトラックの位置を変更するためにスライダーを使用しようとしています。私が抱えている問題は、スライダをマウスで操作すると、位置を変えるのではなく、オーディオが停止するということです。私は私のaddeventlistener終了機能を削除しようとしましたが、それは問題を解決しませんでした。JavaScriptのオーディオの位置を変更する方法は?
任意の助けいただければ幸いです。
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を:あなたが使用する前に、seekslider
の値を設定しているためです
seekslider.value = event.clientX = seekslider.offsetLeft;
:
$(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;' – evolutionxbox
非常に@evolutionxboxを修正していただきありがとうございます。私はそれを受け入れることができるように回答として提出しますか? – Xander
答えとして追加します。 – evolutionxbox