Javascript 如何在socket.io中播放音频?
我正在对我的socket.io聊天进行一些更新,并尝试在每次传递消息时获取音频。当我发送消息时,我收到了未捕获(承诺)的DomeException 以下是传递消息时运行的代码: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.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
节点,以便可以在回调函数中访问该节点。