Implementé notificaciones web push. La notificación está llegando, pero quiero reproducir el sonido de notificación personalizado que agregué, pero ese sonido no funciona. Está llegando el sonido predeterminado de la ventana del sistema. Quiero reproducir este sonido. Agregué un código para informarme por qué este sonido de notificación no se está reproduciendo.
self.addEventListener('push', async function (event) { const data = event.data.json(); console.log(data); const title = 'Sound Notification'; const options = { sound: '../public/messageNotification.mp3', }; try { registration.showNotification(title, options); } catch (e) { registration.showNotification(title, options); } });
Creo que puedes usar HTMLAudioElement para este propósito. Por ejemplo:
let sound: HTMLAudioElement; sound = new Audio(); sound.src = '../public/messageNotification.mp3'; sound.load(); sound.play();
Necesitamos echar un vistazo a lo que hace registration.showNotification
, pero si funciona correctamente y el sonido sigue sin reproducirse, podría deberse a que los navegadores modernos bloquean la reproducción automática en algunas situaciones.
Por ejemplo, Chrome tiene esta política de reproducción automática . Firefox y Safari pueden tener políticas ligeramente diferentes.
En estos casos, es posible que deba encontrar soluciones alternativas para cada navegador, o puede indicar a los usuarios que siempre habiliten la reproducción automática para su sitio. En Chrome 104, haga clic en el icono de candado (junto a la URL), seleccione Site settings
y luego, en Sound
, seleccione Allow
.
const song = new Audio("url"); song.play(); // to play the audio