Chrome标记对Chrome扩展程序网页有影响吗?

时间:2019-06-18 18:44:53

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

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

1 个答案:

答案 0 :(得分:0)

它通过替换为“ sound.src ='audio / dragon.mp3';”来解决。 带有“ sound.src = chrome.extension.getURL(” audio / dragon.mp3“);”