Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在socket.io中播放音频?_Javascript_Node.js_Socket.io - Fatal编程技术网

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

Javascript 如何在socket.io中播放音频?,javascript,node.js,socket.io,Javascript,Node.js,Socket.io,我正在对我的socket.io聊天进行一些更新,并尝试在每次传递消息时获取音频。当我发送消息时,我收到了未捕获(承诺)的DomeException 以下是传递消息时运行的代码: socket.on('new message', (data) => { var messageE = document.createElement('div') messageE.classList.add("well"); messageE

我正在对我的socket.io聊天进行一些更新,并尝试在每次传递消息时获取音频。当我发送消息时,我收到了未捕获(承诺)的DomeException 以下是传递消息时运行的代码:

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()
          })
socket.on('新消息',(数据)=>{
var messageE=document.createElement('div')
messageE.classList.add(“well”);
messageE.classList.add(“msg”);
messageE.innerHTML=''+data.user+':'+data.msg;
console.log(messageE)
chat.appendChild(messageE)
音频播放
})

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

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

使外部变量(例如socketCheck)处于启用状态false。调用套接字时,该值将变为true。如果在true打开false时,if将继续,但不会继续。播放声音时,再次打开声音检查false 这里是一个例子

var soundCheck = false;

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

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

请分享有关所用平台和pluginsRead for browser play策略的更多详细信息。这可能是您的情况中的问题。因为它说的是
DOMException
,请尝试将函数包装在try-Catch块中。为了得到准确的误差。你能检查数据对象吗?假设您定义了
audio
节点,以便可以在回调函数中访问该节点。