我正在尝试将HTMLAudioElement
连接到Web Audio API(MediaElementAudioSourceNode
)。我设置src
,然后调用load()
。
现在,在Chromium中,这让我从readyState
0
(HAVE_NOTHING
)到4
(HAVE_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 |
值。
答案 0 :(得分:1)
因此,在创建媒体元素后添加preload = "auto"
(以匹配Chromium中显然具有的默认值)也可以在Firefox中使用。
答案 1 :(得分:0)
不确定这是否与您的问题直接相关,但由于我在研究其他问题时发现了您的问题,我会加上我的两分钱来帮助其他人来到这里与HAVE_CURRENT_DATA相关的Firefox问题。 :
在播放音频后,发现显然Firefox 将 readyState重置为HAVE_CURRENT_DATA,即在" oncanplaythrough"它是" HAVE_ENOUGH_DATA",但是在播放之后又回到了" HAVE_CURRENT_DATA" - 也许是因为没有更多的框架可以玩?您仍然可以通过另一个调用"播放"播放音频,只有readyState有点令人困惑。
所以,重用音频时要小心......