8f94a8e012f5f6331c106b3c71644512d57b4d59
Regresión del cambio anterior. Al arrancar con sonidoActivo=true, anunciarTurno() devolvía el objeto de voz aunque el navegador estuviera bloqueando el audio; el cartel esperaba el evento 'end', que en ese caso no llega nunca, y quedaba fijo hasta la red de seguridad de 25 segundos. Antes devolvía null y cerraba a los 5. Ahora avisa por callback tanto al terminar de hablar como al quedar claro que no va a hablar, detectado porque 'start' no ocurre. speak() no lanza nada ni emite 'error' cuando lo bloquean: el silencio es la única señal. Además, si la voz elegida no arranca —el equipo la lista pero no la puede usar— se reintenta una vez con la del navegador en vez de quedarse mudo. Comprobado con tres escenarios: equipo normal (cierra a 4,7 s), audio bloqueado (3,1 s) y voz que no suena (5,9 s, hablando en el reintento). Aparte: la expresión de mayúsculas usaba \w, que no cuenta letras acentuadas y trataba la tilde como separador. "maría fernanda gómez" se pronunciaba "MaríA Fernanda GóMez". Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Description
No description provided
5.5 MiB
Languages
PHP
84.8%
JavaScript
6.4%
HTML
5.9%
Shell
1.4%
CSS
0.9%
Other
0.5%