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

JS Auto play background audio after window reload

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

Uncaught (in promise) DOMException: play() failed because the user didn't interact with the document first.

我的代码:

$(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);
});

我该如何解决?非常感谢。

您的代码没有任何问题。除非满足某些条件,否则现代浏览器 disable autoplay by default。通常,以下之一将允许自动播放:

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

*通常每个 click 只允许一个动作。操作包括打开新 window、导航、自动播放媒体等...