leaderboard sound correct finally, click underway

This commit is contained in:
Nathan 2025-12-19 02:40:51 +07:00
parent 9b425899d9
commit 2900863f22

View File

@ -11,46 +11,47 @@ const lbMusicBtn = document.getElementById("lbMusicBtn");
const lbAudio = document.getElementById("lbAudio"); const lbAudio = document.getElementById("lbAudio");
if (lbMusicBtn && lbAudio) { if (lbMusicBtn && lbAudio) {
lbAudio.loop = true;
// 1. Cek 'memori' browser (localStorage).
// Kalau belum pernah diset (null), anggap "on" (default).
const savedState = localStorage.getItem("musicState"); const savedState = localStorage.getItem("musicState");
let isLbPlaying = savedState === null ? true : (savedState === "on"); let isLbPlaying = savedState === null ? true : (savedState === "on");
// 2. Fungsi untuk Update Tampilan & Audio sesuai status
const updateMusicState = () => { const updateMusicState = () => {
if (isLbPlaying) { if (isLbPlaying) {
// Coba play
lbAudio.play().then(() => { lbAudio.play().then(() => {
lbMusicBtn.innerHTML = "🔊"; lbMusicBtn.innerHTML = "🔊";
}).catch(error => { }).catch(error => {
console.log("Autoplay dicegah browser, perlu interaksi."); console.log("Autoplay dicegah, menunggu interaksi user...");
// Kalau diblokir browser, paksa status jadi off di tampilan
lbMusicBtn.innerHTML = "🔇"; lbMusicBtn.innerHTML = "🔇";
isLbPlaying = false;
localStorage.setItem("musicState", "off"); const enableAudioOnInteraction = () => {
lbAudio.play().then(() => {
lbMusicBtn.innerHTML = "🔊";
});
document.removeEventListener('click', enableAudioOnInteraction);
document.removeEventListener('touchstart', enableAudioOnInteraction);
};
document.addEventListener('click', enableAudioOnInteraction);
document.addEventListener('touchstart', enableAudioOnInteraction);
}); });
} else { } else {
// Pause
lbAudio.pause(); lbAudio.pause();
lbMusicBtn.innerHTML = "🔇"; lbMusicBtn.innerHTML = "🔇";
} }
}; };
// 3. Jalankan pengecekan awal saat halaman/filter dimuat
updateMusicState(); updateMusicState();
// 4. Event Listener Tombol lbMusicBtn.addEventListener("click", (e) => {
lbMusicBtn.addEventListener("click", () => { e.stopPropagation();
if (isLbPlaying) { if (isLbPlaying) {
// User mau mematikan
isLbPlaying = false; isLbPlaying = false;
localStorage.setItem("musicState", "off"); // Simpan ke memori "off" localStorage.setItem("musicState", "off");
} else { } else {
// User mau menyalakan
isLbPlaying = true; isLbPlaying = true;
localStorage.setItem("musicState", "on"); // Simpan ke memori "on" localStorage.setItem("musicState", "on");
} }
updateMusicState(); // Terapkan perubahan updateMusicState();
}); });
} }