提问者:小点点

窗口重新加载后JS自动播放背景音频


我尝试过自动播放音频作为背景音乐。当我打开页面时,一切正常。但当我重新加载页面时,它无法播放。控制台日志错误:

未捕获(promise中)DomeException:play()失败,因为用户没有首先与文档交互。

我的代码:

$(window).on('load', function() {
    var soundSpin = new Audio('../images/gift/spin.mp3');
    soundSpin.muted = false;
    soundSpin.play();
    soundSpin.addEventListener('ended', function() {
        soundSpin.currentTime = 0;
        soundSpin.play();
    }, false);
});

我怎样才能修好它?非常感谢你。


共1个答案

匿名用户

你的代码没有问题。除非满足某些条件,否则现代浏览器默认禁用自动播放。通常,以下其中一项将允许自动播放:

  1. 用户单击页面*
  2. 媒体没有音频或默认情况下音频静音
  3. 用户已明确将页面列入白名单,以便自动播放带有音频的媒体
  4. 浏览器在检测到用户频繁与页面交互后启用自动播放

*通常,每次单击只允许一个操作。操作包括打开新窗口、导航、自动播放媒体等。。。