Safari 和 Mobile Safari 需要刷新页面才能播放 Howler Audio
Safari and Mobile Safari require page refresh to play Howler Audio
我目前正在实施 HowlerJS 并且我已经开始工作了。但是在使用 El Capitan 的 Safari 上会发生以下情况:
- 打开 Safari 并输入 HowlerJS 并点击播放,它开始加载。
- 有几台机器从不播放
- 刷新页面,点击播放,成功
- 关闭打开的 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 就没这么幸运了 >_>
我目前正在实施 HowlerJS 并且我已经开始工作了。但是在使用 El Capitan 的 Safari 上会发生以下情况:
- 打开 Safari 并输入 HowlerJS 并点击播放,它开始加载。
- 有几台机器从不播放
- 刷新页面,点击播放,成功
- 关闭打开的 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 就没这么幸运了 >_>