Audio播放时报错

今天遇到一个怪异的问题,有个Audio元素,在执行play函数时,声音并没有正常播放,打开控制台后有报错:

Uncaught (in promise) DOMException: play() failed because the user didn't interact with the document first.

但开启控制台之后,刷新页面,音频播放正常。根据控制台的报错,似乎是浏览器限制了音频的自动播放动作,而音频恰恰就是在页面加载完毕后,由js脚本控制播放的。

试探性的使用timeout尝试了一下,果然,如果延迟500ms执行播放音频的动作,就不会再有报错,但如果延迟时间间隔太短,仍然会报错。

这应该是Chrome限制自动播放的策略导致的。

Show Comments

Get the latest posts delivered right to your inbox.