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 和 iFrame src 属性

如何确定 Mobile Safari 崩溃的原因?

mobile-safari javascript:多个 setTimeouts 或 setIntervals

在 Safari 和 Mobile Chrome 上以编程方式播放有声视频

在 Mobile Safari 可见的 WKUIWebView 中写入 cookie

Appium和iOS Mobile Safari自动化,能做到吗?