【发布时间】:2019-11-01 11:01:26
【问题描述】:
我正在尝试开发一些 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 扩展程序却不能。
【问题讨论】:
标签: javascript google-chrome-extension google-chrome-flags