web-dev-qa-db-ja.com

「AbortError:操作は中止されました。」 -FirefoxでHTML 5 video.currentTimeを調整する際のエラー

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/

12

これは 報告されたバグ Firefoxです。

AbortError: The operation was aborted

次のいずれかの場合にコンソールに出力されます。

  1. ビデオ要素のシークは中止されます。
  2. ビデオ要素の時間は調整されます。

Firefoxのパフォーマンスは、これらのシナリオでChromeまたはEdgeよりはるかに遅いと言いますが、個人的に違いを検証する方法を見つけていません。

バグ修正または回避策が見つかった場合、この回答を更新します。

更新:

Firefoxを60.5.1esrに更新した後、修正されたようで、パフォーマンスが改善されたようです。ただし、Firefox Developerエディションを実行している場合、バグは更新後も残ります。