我正在对socket.io聊天进行一些更新,并且每次尝试传递消息时我都试图获取音频。当我发送消息时,我得到Uncaught (in promise) DOMException
这是通过消息传递时运行的代码:
socket.on('new message', (data) => {
var messageE = document.createElement('div')
messageE.classList.add("well");
messageE.classList.add("msg");
messageE.innerHTML = '<strong>'+ data.user +'</strong>: ' + data.msg;
console.log(messageE)
chat.appendChild(messageE)
audio.play()
})
我可能直到下午晚些时候才能回复。
最佳答案
几秒钟前,我遇到了同样的错误,但我已将其修复。它不是最酷的解决方案,但可以。
我告诉浏览器本身播放音频而不是直接从套接字播放的内容。
设置为false的外部变量(例如socketCheck)。当调用套接字时,这将变为事实。如果为true,则继续执行if;否则为false。播放声音后,再次打开声音检查
这是一个例子。
var soundCheck = false;
socket.on('new message', function(){
soundCheck = true;
});
if (soundCheck) {
sound.play();
sound = false;
}