webmusic.js: bind to audioplayer-events just once

This commit is contained in:
Leah 2021-03-07 15:47:48 +01:00
parent cef0e6b625
commit 4b6e69d4c1
1 changed files with 27 additions and 26 deletions

View File

@ -63,6 +63,32 @@ const initState = () => {
document.getElementById("repeatButton").addEventListener("click", toggleRepeat)
document.getElementById("continuousButton").addEventListener("click", toggleContinue)
audioPlayer.addEventListener("canplay", function () {
audioPlayer.play();
});
audioPlayer.addEventListener("play", function () {
setPlayerState("playing");
});
audioPlayer.addEventListener("pause", function () {
setPlayerState("paused");
});
audioPlayer.addEventListener("error", function () {
setPlayerState("error loading track");
});
audioPlayer.addEventListener("ended", function () {
console.log("end track: " + index);
setPlayerState("idle");
nextTrack();
});
audioPlayer.addEventListener("timeupdate", function () {
updatePlayerState();
});
dirElements.forEach(function(element){
element.id = id++;
});
@ -116,6 +142,7 @@ const updateButtonState = () => {
const playSong = (id) => {
console.log("track id:" +id)
let element = document.getElementById(id);
if (element === null) return;
@ -131,36 +158,10 @@ const playSong = (id) => {
audioPlayer.src = element.href;
setPlayerState("loading");
audioPlayer.load();
audioPlayer.loop = repeat;
element.classList.add("playing");
audioPlayer.addEventListener("canplay", function () {
audioPlayer.play();
});
audioPlayer.addEventListener("play", function () {
setPlayerState("playing");
});
audioPlayer.addEventListener("pause", function () {
setPlayerState("paused");
});
audioPlayer.addEventListener("error", function () {
setPlayerState("error loading track");
});
audioPlayer.addEventListener("ended", function () {
setPlayerState("idle");
nextTrack();
});
audioPlayer.addEventListener("timeupdate", function () {
updatePlayerState();
});
}
const togglePlayback = () => {