html5 音频 - canplay 事件不会在 Safari(Mac 桌面)上触发

标签 html events safari html5-audio

我正在尝试通过 html5 音频标签播放一些音频(如果有任何不同,则使用 Buzz 作为包装器)。

因为音频是定时从另一个事件开始的,所以我一直在听 canplay 事件。

它在 Chrome 和 Firefox 上完美运行,但 Safari 不会触发 canplay 事件。

我已经为所有可能的可用音频事件添加了事件处理程序,据我所知它只会触发 loadstartloadedmetadata 事件。

loadedmetadata 被触发时,音频元素在检查器中看起来很好,但它就是在那里停止的。

我猜这与元素设置为 not 自动播放有关。出于某种原因,这似乎导致 Safari 停在那里(如果我自动播放,那么所有事件被触发)。

您是否遇到了同样的问题,是否有办法不自动播放声音但触发 canplay 事件?

我的 Safari 版本是 5.1.3 (7534.53.10)

最佳答案

好的,解决这个问题的方法很简单,就是将声音设置为自动播放并监听 canplay 事件。当它触发时,我可以暂停它并等待我的其他事件触发。

不得不稍微改变一下逻辑,但这似乎没问题。

关于html5 音频 - canplay 事件不会在 Safari(Mac 桌面)上触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9920297/

相关文章:

html - 默认 :target with CSS

javascript - 如何使用jquery在双击时传递属性值

java - 由于不活动而自动关闭 JavaFX 应用程序

xml - XSLT document() 在 WebKit 浏览器中的使用

iOS浏览器编程技术

safari - 用于内容脚本注入(inject)的多个白名单/黑名单?

html - 一行3个DIV

javascript - html中的电话号码输入字段

javascript - FramerJS 中从未触发 `Event.ImageLoaded` 事件?

java - 将触摸事件与鼠标事件分开