最近在写项目的时候用到了语音播报的功能,当后端用websocket推送数据到前端接收数据页面报警。但是发现了一个问题就是需要点击一下才会语音播报,但是页面并没有写点击事件,后来发现是这个功能需要人机交互才起作用,这是因为浏览器有一个隐私机制所以需要在浏览器里面添加当前语音的地址就可以。
if (isAllow) {
const utter = new SpeechSynthesisUtterance(devname + '设备正在报警');
utters.push(utter)