我正在尝试开发一些 JavaScript 代码来尝试在页面加载时自动播放音频。为了成功地做到这一点,我进入 chrome://flags 并将 #autoplay-policy 设置为“不需要手势”。当我这样做时,我能够成功地从常规 JavaScript + HTML 自动播放音频但是,当我将相同的代码放入自定义 Chrome 扩展程序的 content.js 文件时,我收到此错误“未捕获(承诺中)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 扩展程序不能。