【问题标题】:'AbortError: The operation was aborted.' - Error when adjusting HTML 5 video.currentTime in Firefox“AbortError:操作被中止。” - 在 Firefox 中调整 HTML 5 video.currentTime 时出错
【发布时间】:2019-04-02 00:07:35
【问题描述】:

使用 Firefox 并使用 HTML5 视频更改视频的位置时。有没有人知道是什么原因造成的?

这是我的想法:

  1. 将其设置为没有相应帧的时间值 - 我尝试始终将其设置为存在帧的时间以解决此问题
  2. 在请求下一帧时视频帧未加载 - 为了测试这一点,我将超时设置为 5 毫秒,这肯定会减少错误数量,因此有一些证据表明这是源的错误。

我制作了调整视频时间的滑块来复制错误:

var vid = $('#v0')[0];
var slider = document.getElementById('vidSlider')
linkVideoToSlider();

vid.onplay = vid.onclick = function() {
  vid.onplay = vid.onclick = null;

  setTimeout(function() {
    vid.pause();
    slider.value = vid.currentTime / vid.duration * 100
    vid.currentTime += (1 / 29.97);

  }, 12000);

  setInterval(function() {
    $('#time').html((vid.currentTime * 29.97).toPrecision(5));
    slider.value = vid.currentTime / vid.duration * slider.max;
  }, 100);
};

function linkVideoToSlider() {
  var adjustVideoTime = function() {
    //Note that we attempt to adjust to a time that has a frame.
    setTimeout(function() {
      vid.currentTime = Number.parseFloat(slider.value / 29.97).toFixed(4);
    }, 5);
  }
  slider.oninput = adjustVideoTime
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
Frame number:
<p id="time"></p>
<video id="v0" controls tabindex="0" autobuffer preload>
    <source type="video/webm; codecs=&quot;vp8, vorbis&quot;" src="http://www.html5rocks.com/tutorials/video/basics/Chrome_ImF.webm"></source>
    <source type="video/ogg; codecs=&quot;theora, vorbis&quot;" src="http://www.html5rocks.com/tutorials/video/basics/Chrome_ImF.ogv"></source>
    <source type="video/mp4; codecs=&quot;avc1.42E01E, mp4a.40.2&quot;" src="http://www.html5rocks.com/tutorials/video/basics/Chrome_ImF.mp4"></source>
    <p>Sorry, your browser does not support the &lt;video&gt; element.</p>
</video>
<div class="slidecontainer">
  <p>Time of video slider:</p>
  <input type="range" min="0" max="1024" value="0" class="slider" id="vidSlider">
</div>

如果你更喜欢 JSFiddle: https://jsfiddle.net/tehsurfer/9ahz5rmd/52/

【问题讨论】:

  • 您是否在开始时使用 MOOV atom 对视频进行了编码?我的猜测是,如果元数据尚未加载,您可能会遇到意外错误
  • 谢谢@Offbeatmammal,我不知道用 MOOV 编码是一件事情,我会研究如何做到这一点
  • 要检查这一点,我已经尝试了这个JSFiddle 并删除了 .mp4 版本。行为似乎保持不变
  • 这似乎只与 FF 相关,这是一个错误报告:bugzilla.mozilla.org/show_bug.cgi?id=1507193
  • 这里是关于 meta 的答案,如果问题被证明是错误,如何继续:meta.stackoverflow.com/questions/308817/…

标签: javascript firefox html5-video


【解决方案1】:

这是 Firefox 中的 reported bug,已在 70+ 版本中修复。

AbortError: The operation was aborted

在以下任一情况下输出到控制台:

  1. 视频元素中的搜索被中止。
  2. 调整视频元素的时间。

那里的一些开发人员说 Firefox 在这些情况下的执行速度比 Chrome 或 Edge 慢得多,但我还没有找到一种方法来亲自验证差异。

如果发现错误修复或解决方法,我将更新此答案。

更新:

将 Firefox 更新到 70 后,它似乎已修复,性能似乎有所提高。

【讨论】:

  • 该错误提到它已在版本70中修复
  • bug 还在 66 中
猜你喜欢
  • 2020-02-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-02
  • 1970-01-01
  • 2013-06-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多