0

我正在尝试开发一些 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 扩展程序不能。

4

1 回答 1

0

通过替换“sound.src = 'audio/dragon.mp3';”修复了它 用“sound.src = chrome.extension.getURL("audio/dragon.mp3");”

于 2019-06-18T19:04:31.200 回答