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