Safari和移动Safari需要刷新页面才能播放Howler音频

3
我正在实现HowlerJS,并已让它工作。但是在使用El Capitan的Safari上发生以下情况:
  1. 打开Safari,输入HowlerJS,点击播放,然后它开始加载。
  2. 对于一些机器,它永远不会播放。
  3. 刷新页面、点击播放,它就能正常工作。
  4. 关闭Safari后,再打开,问题依旧。

这也发生在iOS上。现在我知道需要等待用户点击才能播放音频,这也是我正在做的。当按钮被点击时,它会加载并播放音频。是否有人遇到过这个问题?我正在使用稳定版本1.1.28。


1
这个问题已经在2.0版本中得到了修复,该版本非常稳定,并且目前被广泛使用(并将很快合并到主分支)。 - James Simpson
@JamesSimpson,你能详细说明修复方法吗?我在Yosemite 1.1.28上也遇到了这个问题。 - novwhisky
1个回答

2
Safari 9 开始在初始页面加载时 暂停音频。除了通常要做的所有操作外,现在我们还必须指示 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据说已经修复了这个问题,但我们稳定版用户在1.1.28中没有这样的运气>_>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接