我正在尝试开发一些JavaScript代码,以尝试在页面加载时自动播放音频。为了成功完成此操作,我进入了chrome:// flags并将#autoplay-policy设置为“无需手势”。执行此操作后,我能够从常规JavaScript + HTML成功自动播放音频文件,但是,当我将相同的代码放入自定义Chrome扩展程序的content.js文件中时,出现此错误“ Uncaught(in promise)DOMException”,这与在禁用我的Chrome标志之前收到的相同错误常规的JavaScript + HTML文件。
const sound = new Audio()
function playSound() {
sound.src = 'audio/dragon.mp3';
sound.play();
}
setTimeout(function () {
playSound();
}, 2000)
这是在我将#autoplay-policy更改为不需要任何手势之后在我的常规JavaScript + HTML网页上运行的代码。当我在Chrome扩展程序中使用相同的代码时,它不会自动播放音频。
总体问题是Chrome标志是否对Chrome扩展程序的政策有影响?或者,如果有其他原因导致我的音频无法播放。因为我不明白为什么禁用#autoplay-policy可以让我的一个网站自动播放MP3文件,但是Chrome扩展程序却不能。
答案 0 :(得分:0)
它通过替换为“ sound.src ='audio / dragon.mp3';”来解决。 带有“ sound.src = chrome.extension.getURL(” audio / dragon.mp3“);”