我如何在socket.io中播放音频?

时间:2019-02-27 03:55:25

标签: javascript node.js socket.io

我正在对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()
          })

我可能要等到下午晚些时候才能回复。

1 个答案:

答案 0 :(得分:1)

几秒钟前,我遇到了同样的错误,但我已将其修复。它不是最酷的解决方案,但可以。 我告诉浏览器本身播放音频而不是直接从套接字播放的内容。

制作一个外部变量(例如socketCheck),该变量为 false 。调用套接字时,它将变为 true 。如果 if 设置为 true 且设置为 false ,则不会继续。播放声音后,再次打开声音检查 false 这是一个例子;

var soundCheck = false;

socket.on('new message', function(){
    soundCheck = true;
});

if (soundCheck) {
    sound.play();
    sound = false;
}