album-art

    00:00
    // Inserta el reproductor fijo + preferencias add_action(‘wp_body_open’, function () { $audio_url = ‘https://tu-dominio.com/wp-content/uploads/banda-sonora.mp3’; // <-- tu MP3 ?>
    0){ audio.currentTime = p.pos; } // Intento de autoplay si el usuario marcó ‘Reproducir siempre’ y no se dio de baja if(p.always && !p.optOut){ tryPlay().finally(show); } else { show(); setBtn(false); } // Guardar posición periódicamente audio.addEventListener(‘timeupdate’, function(){ if(!audio.paused) savePos(); }); window.addEventListener(‘beforeunload’, savePos); btn.addEventListener(‘click’, function(){ if(audio.paused){ tryPlay().then(function(){ localStorage.setItem(‘uaf_audio_optout’,’0′); }); } else { audio.pause(); setBtn(false); localStorage.setItem(‘uaf_audio_optout’,’1′); // No auto-reproducir próximas veces si pausó manual } }); muteBtn.addEventListener(‘click’, function(){ audio.muted = !audio.muted; setMute(audio.muted); localStorage.setItem(‘uaf_audio_muted’, audio.muted ? ‘1’ : ‘0’); }); always.addEventListener(‘change’, function(){ localStorage.setItem(‘uaf_audio_always’, this.checked ? ‘1’ : ‘0’); if(this.checked && audio.paused){ tryPlay(); } }); audio.addEventListener(‘pause’, function(){ setBtn(false); }); audio.addEventListener(‘play’, function(){ setBtn(true); }); } if(document.readyState === ‘loading’){ document.addEventListener(‘DOMContentLoaded’, init); } else { init(); } })(); «; wp_register_script(‘uaf-audio’, false); wp_enqueue_script(‘uaf-audio’); wp_add_inline_script(‘uaf-audio’, $js); }); add_action(‘wp_enqueue_scripts’, function () { // Estilos mínimos $css = » #uaf-audio-wrap{position:fixed;right:16px;bottom:16px;z-index:9999;display:flex;gap:10px;align-items:center;background:rgba(0,0,0,.6);backdrop-filter:saturate(120%) blur(6px);padding:8px 12px;border-radius:12px} .uaf-audio-hidden{opacity:0;pointer-events:none;transition:opacity .25s} .uaf-audio-show{opacity:1;pointer-events:auto} .uaf-audio-btn{appearance:none;border:none;border-radius:10px;padding:8px 10px;color:#fff;background:rgba(255,255,255,.15);cursor:pointer;font-size:14px} .uaf-audio-btn:hover{background:rgba(255,255,255,.25)} .uaf-audio-switch{color:#fff;font-size:13px;display:flex;align-items:center;gap:6px} .uaf-audio-switch input{accent-color:#fff} «; wp_add_inline_style(‘wp-block-library’, $css); // Lógica JS: bucle infinito, consentimiento, auto-reanudación entre páginas $js = » (function(){ var audio, wrap, btn, muteBtn, always; function qs(id){return document.getElementById(id);} function show(){wrap.classList.add(‘uaf-audio-show’); wrap.classList.remove(‘uaf-audio-hidden’);} function setBtn(isPlaying){btn.textContent = isPlaying ? ‘⏸︎’ : ‘▶︎’; btn.title = isPlaying ? ‘Pausar’ : ‘Reproducir’; btn.setAttribute(‘aria-label’, btn.title+’ banda sonora’);} function setMute(isMuted){muteBtn.textContent = isMuted ? ‘🔈’ : ‘🔇’; muteBtn.title = isMuted ? ‘Activar sonido’ : ‘Silenciar’; muteBtn.setAttribute(‘aria-label’, muteBtn.title);} function loadPrefs(){ return { optOut: localStorage.getItem(‘uaf_audio_optout’) === ‘1’, muted: localStorage.getItem(‘uaf_audio_muted’) === ‘1’, always: localStorage.getItem(‘uaf_audio_always’) === ‘1’, pos: parseFloat(localStorage.getItem(‘uaf_audio_pos’) || ‘0’) }; } function savePos(){ try{ localStorage.setItem(‘uaf_audio_pos’, String(audio.currentTime||0)); }catch(e){} } function tryPlay(){ return audio.play().then(function(){ setBtn(true); }).catch(function(){ setBtn(false); }); } function init(){ audio = qs(‘uaf-audio’); wrap = qs(‘uaf-audio-wrap’); btn = qs(‘uaf-audio-toggle’); muteBtn = qs(‘uaf-audio-mute’); always = qs(‘uaf-audio-always’); if(!audio||!wrap||!btn||!muteBtn||!always) return; var p = loadPrefs(); audio.muted = p.muted; setMute(p.muted); always.checked = p.always; // Reanudar desde la última posición (si tenía sonido activo) if(!isNaN(p.pos) && p.pos > 0){ audio.currentTime = p.pos; } // Intento de autoplay si el usuario marcó ‘Reproducir siempre’ y no se dio de baja if(p.always && !p.optOut){ tryPlay().finally(show); } else { show(); setBtn(false); } // Guardar posición periódicamente audio.addEventListener(‘timeupdate’, function(){ if(!audio.paused) savePos(); }); window.addEventListener(‘beforeunload’, savePos); btn.addEventListener(‘click’, function(){ if(audio.paused){ tryPlay().then(function(){ localStorage.setItem(‘uaf_audio_optout’,’0′); }); } else { audio.pause(); setBtn(false); localStorage.setItem(‘uaf_audio_optout’,’1′); // No auto-reproducir próximas veces si pausó manual } }); muteBtn.addEventListener(‘click’, function(){ audio.muted = !audio.muted; setMute(audio.muted); localStorage.setItem(‘uaf_audio_muted’, audio.muted ? ‘1’ : ‘0’); }); always.addEventListener(‘change’, function(){ localStorage.setItem(‘uaf_audio_always’, this.checked ? ‘1’ : ‘0’); if(this.checked && audio.paused){ tryPlay(); } }); audio.addEventListener(‘pause’, function(){ setBtn(false); }); audio.addEventListener(‘play’, function(){ setBtn(true); }); } if(document.readyState === ‘loading’){ document.addEventListener(‘DOMContentLoaded’, init); } else { init(); } })(); «; wp_register_script(‘uaf-audio’, false); wp_enqueue_script(‘uaf-audio’); wp_add_inline_script(‘uaf-audio’, $js); });
    album-art

      00:00

      Deja una respuesta

      Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

      Scroll al inicio