问题:音频文件经常无法加载。因为他们甚至没有出现在"网络" Chrome开发工具中的标签。
测试用例:
的index.html
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="main.js"></script>
</head>
<body>
</body>
</html>
main.js
['audio1.ogg', 'audio2.ogg', 'audio3.ogg'].forEach((path) => {
new Audio(path);
});
音频文件:
重现步骤:
说明:
答案 0 :(得分:2)
我可以复制它们没有显示在网络选项卡中(即使设置了禁用缓存标志),但文件确实加载并正确播放 - 大多数时间。
是的,我想我只是把这个行为误认为是一个问题,因为我看到一个HTML5视频游戏经常陷入“预加载”阶段,似乎这些音频文件应该受到指责,因为删除它们会修复问题。
我发现如果我在你的测试用例中做了什么,只是创建Audio
对象,但是而不是将它添加到DOM,通常我得到{ {1}}来自他们的事件,但并非总是如此 - 大约十分之一,一,二,甚至全部三个都不会触发canplay
。但如果我将它们附加到DOM,我总是得到canplay
事件。
因此,如果你没有将它们添加到DOM(仅canplay
就足够了),这可能是导致预加载 - 永无止境问题的原因。