Chrome自动播放报错:play() failed because the user didn't interact with the document first解决方法
报错信息
在浏览器中实现语音播报,视频自动播放等场景下,我们可能会遇到以下报错:
Uncaught (in promise) DOMException: play() failed because the user didn't interact with the document first.
报错原因
这个错误信息表示你尝试在没有用户交互的情况下播放音频,而浏览器的自动播放策略阻止了这一行为。
从Chrome 66开始,浏览器实施了更严格的自动播放策略,要求音频或视频在播放前必须有用户的明确交互(例如点击或触摸事件)。
解决方法
在toB用户确定的场景下,我们可以设置Chrome启动参数,来指定自动播放策略:
--no-user-gesture-required 自动播放策略,不需要任何用户手势
具体步骤:
桌面Chrome快捷方式图标--右键属性--快捷方式栏--目标内容末尾添加参数:
--autoplay-policy=no-user-gesture-required
目标内容完整示例:
"C:\Program Files\Google\Chrome\Application\chrome.exe" --autoplay-policy=no-user-gesture-required
设置完后,重启Chrome浏览器,测试具体场景即可;