镀铬扩展音频;有时有效,有时导致空白DOMException

时间:2019-06-16 20:04:49

标签: javascript google-chrome google-chrome-extension

我正在为自己编写一个扩展程序,该扩展程序基于从DOM中读取的内容来播放声音。

有时声音正常播放,有时会因

失败
uncaught (in promise) DOMException

没有更多信息。

据我了解,这是当您尝试将自动播放音频插入网页而不默认设置为静音时发生的问题。如果是这种情况,为什么我的扩展程序有时可以正常工作,而其他时间却不能正常工作?

我可以确认DOM解析正确,并且在以下对play的调用中发生了错误:

let my_audio = new Audio(chrome.runtime.getURL("media/beep.wav"));
my_audio.play();

媒体文件已在manifest.json中正确注册

"web_accessible_resources":[
    "media/beep.wav"
],

uncaught (in promise) DOMException错误还有其他原因吗?

1 个答案:

答案 0 :(得分:2)

肯定是因为您确实与页面进行了交互,这将利用Chrome中的自动播放策略(请注意,即使您现在不定位其他浏览器,在其他浏览器中也可能不够用。)