我发现以编程方式设置 currentTime
HTML5 上的属性 <audio>
元素使 Firefox 43 崩溃(实际上杀死了整个浏览器,而不仅仅是产生 JS 错误)
我的 JavaScript 代码如下所示:
// 'offset' variable set to valid numeric value elsewhere
audio.addEventListener("canplay", function() {
audio.currentTime = offset;
});
audio.play();
相同的代码在最新的 Chrome (47.0) 中运行良好
最佳答案
原来我的代码有 2 个问题。为了防止浏览器崩溃,我需要删除 autoplay
我放在 <audio>
上的属性元素,然后被遗忘:
<audio id="player" autoplay></audio>
在我这样做之后,浏览器不再完全崩溃,但音频播放出现故障并且跳得很快。
第二个问题在我阅读 this question 后得到解决并在设置 currentTime 后删除了事件处理程序(原来设置 currentTime
导致 canplay
事件再次触发,创建了一个无限事件循环 - 但由于某种原因只在 Firefox 而不是 Chrome)。
我在 Firefox 和 Chrome 上运行的最终代码如下所示:
function onCanPlay(){
audio.currentTime = offset;
audio.oncanplay = null;
}
audio.oncanplay = onCanPlay;
关于javascript - 在 <audio> 元素上设置 currentTime 会使 Firefox 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34543195/