Safari 和 Mobile Safari 需要刷新页面才能播放 Howler Audio

Safari and Mobile Safari require page refresh to play Howler Audio

我目前正在实施 HowlerJS 并且我已经开始工作了。但是在使用 El Capitan 的 Safari 上会发生以下情况:

  1. 打开 Safari 并输入 HowlerJS 并点击播放,它开始加载。
  2. 有几台机器从不播放
  3. 刷新页面,点击播放,成功
  4. 关闭打开的 Safari,再次发生。

iOS 也发生了这种情况。现在我已经看到您需要等待用户点击播放音频,这正是我正在做的。

单击按钮后,它会加载并播放音频。有没有人遇到过这个问题?我使用的是稳定版 1.1.28。

Safari 9 在初始页面加载时 started to suspend audio。除了您通常必须做的所有其他歌舞之外,现在我们必须指示 AudioContext 恢复并推迟我们的业务逻辑,直到该承诺解决。您可能希望在点击处理程序中进行此检查。

if(Howler.ctx && Howler.ctx.state && Howler.ctx.state == "suspended") {
    Howler.ctx.resume().then(function() {
        console.log("AudioContext resumed!");
        // fire your callback here
    });
}

Howler 2.0 据说已经fixed这个了,但是对于我们这些稳定的用户来说,1.1.28 就没这么幸运了 >_>