Доброе утро ..
После того, как Google Chrome обновил свою политику автозапуска в апреле 2018 года, чтобы предотвратить воспроизведение аудио и видео без взаимодействия с пользователем, Как я могу запустить звуковой эффект, чтобы уведомлять пользователя о новых сообщениях?
Я не хочу автоматически воспроизводить звук, все, что я хочу, это воспроизводить звуковые эффекты каждый раз, когда пользователь получает новое сообщение с другой строки.
Вот мой фрагмент кода, как просто то, что мне нужно для достижения:
function sendMessage(msg, callback){
setTimeout(function(){
document.querySelector('audio').play();
var msg_body = document.createElement('div');
msg_body.innerText = msg;
document.querySelector('#chat-body').appendChild(msg_body);
if(callback) callback();
},2e3);
}
sendMessage('Hello', function(){
sendMessage('Good Morning', function(){
sendMessage('What\'s Your Name ?');
});
});
#chat-body > div{border-radius:10px;background-color:#EEE;margin:10px;padding:10px}
<div id='chat-body'></div>
<audio src='https://notificationsounds.com/notification-sounds/plucky-564/download/mp3'></audio>
Функция воспроизведения может корректно работать на stackoverflow.com из-за высокой степени вовлеченности, но на моей странице и даже на Codepen.com звук не воспроизводится и консоль возвращает ошибку:
Uncaught (in promise) DOMException: play() failed because the user didn't interact with the document first. goo.gl/xX8pDD