加载<audio>源 - Firefox进入readyState 2,Chrome进入4

时间:2015-07-23 14:19:08

标签: javascript html5-audio web-audio

我正在尝试将HTMLAudioElement连接到Web Audio API(MediaElementAudioSourceNode)。我设置src,然后调用load()

现在,在Chromium中,这让我从readyState 0HAVE_NOTHING)到4HAVE_ENOUGH_DATA),所以后续{{1成功。但是在Firefox中我只能说明play()2)并且没有其他事情发生。

我错过了关键的一步吗?

编辑:这是我的调试信息:

HAVE_CURRENT_DATA

至少从此列表中,初始数据的唯一区别是Chrome中的 | | FF Init | FF Load | Ch Init | Ch Load | |readyState | 0 | 2 | 0 | 4 | |preload | | | auto | auto | |duration | NaN | 186.45 | NaN | 186.44 | |error | null | null | null | null | |networkState | 0 | 1 | 0 | 1 | 值。

2 个答案:

答案 0 :(得分:1)

因此,在创建媒体元素后添加preload = "auto"(以匹配Chromium中显然具有的默认值)也可以在Firefox中使用。

答案 1 :(得分:0)

不确定这是否与您的问题直接相关,但由于我在研究其他问题时发现了您的问题,我会加上我的两分钱来帮助其他人来到这里与HAVE_CURRENT_DATA相关的Firefox问题。 :

在播放音频后,发现显然Firefox readyState重置为HAVE_CURRENT_DATA,即在&#34; oncanplaythrough&#34;它是&#34; HAVE_ENOUGH_DATA&#34;,但是在播放之后又回到了&#34; HAVE_CURRENT_DATA&#34; - 也许是因为没有更多的框架可以玩?您仍然可以通过另一个调用&#34;播放&#34;播放音频,只有readyState有点令人困惑。

所以,重用音频时要小心......