bgm bener

This commit is contained in:
Nathan 2025-12-19 02:30:12 +07:00
parent 6511e5d59a
commit 9b425899d9

View File

@ -9,33 +9,48 @@ buttons.forEach(btn => {
const lbMusicBtn = document.getElementById("lbMusicBtn"); const lbMusicBtn = document.getElementById("lbMusicBtn");
const lbAudio = document.getElementById("lbAudio"); const lbAudio = document.getElementById("lbAudio");
let isLbPlaying = true;
if (lbMusicBtn && lbAudio) { if (lbMusicBtn && lbAudio) {
// --- TAMBAHAN: Coba play langsung saat load ---
lbAudio.play().then(() => { // 1. Cek 'memori' browser (localStorage).
// Jika browser mengizinkan, set icon jadi nyala // Kalau belum pernah diset (null), anggap "on" (default).
lbMusicBtn.innerHTML = "🔊"; const savedState = localStorage.getItem("musicState");
isLbPlaying = true; let isLbPlaying = savedState === null ? true : (savedState === "on");
}).catch(error => {
// Jika browser memblokir (Autoplay Policy), set ke mute dulu
console.log("Autoplay dicegah browser, menunggu interaksi user.");
lbMusicBtn.innerHTML = "🔇";
isLbPlaying = false; // Ubah state jadi false biar klik berikutnya nge-play
});
// ----------------------------------------------
// 2. Fungsi untuk Update Tampilan & Audio sesuai status
const updateMusicState = () => {
if (isLbPlaying) {
// Coba play
lbAudio.play().then(() => {
lbMusicBtn.innerHTML = "🔊";
}).catch(error => {
console.log("Autoplay dicegah browser, perlu interaksi.");
// Kalau diblokir browser, paksa status jadi off di tampilan
lbMusicBtn.innerHTML = "🔇";
isLbPlaying = false;
localStorage.setItem("musicState", "off");
});
} else {
// Pause
lbAudio.pause();
lbMusicBtn.innerHTML = "🔇";
}
};
// 3. Jalankan pengecekan awal saat halaman/filter dimuat
updateMusicState();
// 4. Event Listener Tombol
lbMusicBtn.addEventListener("click", () => { lbMusicBtn.addEventListener("click", () => {
if (isLbPlaying) { if (isLbPlaying) {
lbAudio.pause(); // User mau mematikan
lbMusicBtn.innerHTML = "🔇";
isLbPlaying = false; isLbPlaying = false;
localStorage.setItem("musicState", "off"); // Simpan ke memori "off"
} else { } else {
lbAudio.play().catch(error => { // User mau menyalakan
console.log("Gagal memutar audio:", error);
});
lbMusicBtn.innerHTML = "🔊";
isLbPlaying = true; isLbPlaying = true;
localStorage.setItem("musicState", "on"); // Simpan ke memori "on"
} }
updateMusicState(); // Terapkan perubahan
}); });
} }