▶ Play Your browser does not support the audio element. docu…
▶ Play Your browser does not support the audio element. document.addEventListener(‘DOMContentLoaded’, function() { (function() { const audio = document.querySelector(‘.ndst-audio’); const playBtn = document.getElementById(‘playBtn’); const timerEl = document.getElementById(‘timer’); const COOKIE_NAME = ‘ndst-audioplay-6’; const COOKIE_MINUTES = 45; function setCookie(name, value, minutes) { const expires = new Date(Date.now() + minutes * 60 * 1000) .toUTCString(); document.cookie = `${name}=${encodeURIComponent(value)}; expires=${expires}; path=/`; } function getCookie(name) { return document.cookie.split(‘; ‘).reduce((r, v) => { const parts = v.split(‘=’); return parts[0] === name ? decodeURIComponent(parts[1]) : r; }, ”); } // — Already played: bail out — if (getCookie(COOKIE_NAME)) { playBtn.disabled = true; playBtn.textContent = ‘✔ Already played’; timerEl.textContent = ”; return; } let timerInterval; function startPlayback() { playBtn.disabled = true; playBtn.textContent = ‘⏸ Playing…’; setCookie(COOKIE_NAME, ‘true’, COOKIE_MINUTES); const updateTimer = () => { const remaining = Math.max(0, (audio.duration || 0) – audio .currentTime); const mins = Math.floor(remaining / 60); const secs = Math.floor(remaining % 60).toString().padStart( 2, ‘0’); timerEl.textContent = `${mins}:${secs}`; }; timerInterval = setInterval(updateTimer, 1000); updateTimer(); audio.addEventListener(‘ended’, () => { clearInterval(timerInterval); timerEl.textContent = ‘Playback complete ✅’; playBtn.textContent = ‘✔ Already played’; }); } // — Auto-play on load — audio.play().then(() => { startPlayback(); }).catch(() => { // Browser blocked autoplay — fall back to button click playBtn.textContent = ‘▶ Play’; playBtn.addEventListener(‘click’, () => { audio.play().catch(err => console.warn( ‘Playback failed:’, err)); startPlayback(); }, { once: true }); }); })(); });
Read Details