update 2 musik
This commit is contained in:
parent
0e06e34569
commit
b3d1bad0aa
@ -492,17 +492,26 @@
|
||||
const vol = document.getElementById("music-volume");
|
||||
|
||||
let muted = localStorage.getItem("dok_muted") === "true";
|
||||
let started = false; // ← merkt sich, ob Wiedergabe schon lief
|
||||
|
||||
if (localStorage.getItem("dok_vol") !== null)
|
||||
vol.value = localStorage.getItem("dok_vol");
|
||||
audio.volume = parseFloat(vol.value);
|
||||
|
||||
// Playlist mischen und von vorne durchspielen
|
||||
let index = 0;
|
||||
const shuffled = [...playlist].sort(() => Math.random() - 0.5);
|
||||
|
||||
function playTrack(i) {
|
||||
audio.src = shuffled[i];
|
||||
if (!muted) audio.play().catch(() => {});
|
||||
audio.muted = muted;
|
||||
if (!muted) {
|
||||
audio
|
||||
.play()
|
||||
.then(() => {
|
||||
started = true;
|
||||
})
|
||||
.catch(() => {});
|
||||
}
|
||||
}
|
||||
|
||||
audio.addEventListener("ended", () => {
|
||||
@ -513,8 +522,18 @@
|
||||
function applyMute() {
|
||||
audio.muted = muted;
|
||||
muteBtn.textContent = muted ? "🔇" : "🔊";
|
||||
if (!muted && audio.paused) audio.play().catch(() => {});
|
||||
localStorage.setItem("dok_muted", muted);
|
||||
|
||||
// Wenn gerade nicht stumm, aber Audio pausiert → starten/fortsetzen
|
||||
if (!muted) {
|
||||
if (!audio.src) playTrack(index);
|
||||
audio
|
||||
.play()
|
||||
.then(() => {
|
||||
started = true;
|
||||
})
|
||||
.catch(() => {});
|
||||
}
|
||||
}
|
||||
|
||||
muteBtn.addEventListener("click", () => {
|
||||
@ -532,16 +551,25 @@
|
||||
muteBtn.textContent = parseFloat(vol.value) === 0 ? "🔇" : "🔊";
|
||||
});
|
||||
|
||||
// Erster Start beim ersten Klick (Browser-Autoplay-Sperre)
|
||||
// Track laden (noch kein play() – Browser erlaubt das vor Interaktion nicht)
|
||||
playTrack(0);
|
||||
applyMute();
|
||||
document.addEventListener(
|
||||
"click",
|
||||
() => {
|
||||
if (!muted && audio.paused) audio.play().catch(() => {});
|
||||
},
|
||||
{ once: true },
|
||||
);
|
||||
|
||||
// Bei JEDER Interaktion prüfen, ob Audio noch nicht läuft → nachholen
|
||||
// (kein { once: true } mehr, schadet aber kaum da der Check schnell ist)
|
||||
function tryResume() {
|
||||
if (!muted && (audio.paused || !started)) {
|
||||
audio
|
||||
.play()
|
||||
.then(() => {
|
||||
started = true;
|
||||
})
|
||||
.catch(() => {});
|
||||
}
|
||||
}
|
||||
document.addEventListener("click", tryResume);
|
||||
document.addEventListener("keydown", tryResume);
|
||||
document.addEventListener("pointerdown", tryResume);
|
||||
})();
|
||||
</script>
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user