我以这种方式使用 speechSynthesis API:
speechSynthesis.speak(new SpeechSynthesisUtterance("hello world"));
但是现在我在更新 Google Chrome 后收到错误消息:
[弃用] 自 2018 年 12 月左右的 M71 以来,不再允许没有用户激活的 speechSynthesis.speak()。有关详细信息,请参阅 https://www.chromestatus.com/feature/5687444770914304
我该如何解决这个问题并请求许可?
原文由 stepozer 发布,翻译遵循 CC BY-SA 4.0 许可协议
这是 Chrome 关于从网页发出声音的新政策的一部分。
您只需要您的用户在父文档的生命周期内提供一个用户手势(您可以 在此处 找到一个列表)(即,只要用户与页面进行过交互,该事件可能早就死了)。
请注意,这些事件甚至可以遍历框架,例如,在 StackOverflow 中,您必须单击“运行”按钮这一简单事实将使内部框架允许执行此代码:
在您的代码中,您只需提供某种 UI,以确保您的用户在您调用此方法之前已与页面进行交互(例如,按钮/切换将完美地完成)。