javascript - 如何让我的音频在 socket.io 中播放?

标签 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()
          })

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

最佳答案

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

创建一个处于false 的外部变量(例如socketCheck)。当调用套接字时,它将变为 true。当 truefalse 时,if 将继续。它不会。播放声音后,再次将 soundCheck 设为 false 这是一个例子;

var soundCheck = false;

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

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

关于javascript - 如何让我的音频在 socket.io 中播放?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54897803/

相关文章:

javascript - 如何在 Angular 8 中创建通用请求服务

javascript - 如何转义和取消转义 JavaScript 中的引号?

node.js - HTTP2 与 node.js 在 nginx 代理后面

java - Socket.io 发出但不触发监听器

JavaScript - 测量远程页面的加载时间

javascript - 从 jsonwebtoken 中提取到期日期时间

javascript - 查询 sequelize 中的关联位置?

node.js - 带有express和mikeal/request库的nodejs代理

javascript - 在多个用户之间共享上传的图像到 Canvas

node.js - 在nodejsexpresssocket.io中设置 session 数据