Safari 和 Mobile Safari 需要刷新页面才能播放 Howler Audio
Posted
技术标签:
【中文标题】Safari 和 Mobile Safari 需要刷新页面才能播放 Howler Audio【英文标题】:Safari and Mobile Safari require page refresh to play Howler Audio 【发布时间】:2016-01-07 21:23:02 【问题描述】:我目前正在实施HowlerJS,并且我得到了它的工作。但是在使用 El Capitan 的 Safari 上会发生以下情况:
-
打开Safari,输入HowlerJS,点击播放,开始加载。
对于一些从不播放的机器
刷新页面,点击播放,就可以了。
关闭打开的 Safari,再次发生。
这也发生在 ios 上。现在我已经看到您需要等待用户单击才能播放音频,这就是我正在做的事情。
单击按钮时,它会加载并播放音频。有没有人遇到过这个问题?我使用的是稳定版 1.1.28。
【问题讨论】:
这个问题已经在 2.0 中得到修复,相当稳定,目前被很多人使用(很快就会合并到 master 中)。 @JamesSimpson 你能详细说明修复方法吗?我也在 Yosemite 1.1.28 上复制它。 【参考方案1】: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 这样的运气 >_>
【讨论】:
以上是关于Safari 和 Mobile Safari 需要刷新页面才能播放 Howler Audio的主要内容,如果未能解决你的问题,请参考以下文章
mobile-safari javascript:多个 setTimeouts 或 setIntervals
在 Safari 和 Mobile Chrome 上以编程方式播放有声视频