it-swarm.com.de

'AbortError: Der Vorgang wurde abgebrochen.' - Fehler beim Anpassen von HTML 5 video.currentTime in Firefox

Wenn Sie Firefox verwenden und die Position eines Videos mithilfe von HTML5-Video ändern. Hat jemand Einsicht, woran das liegt? 

Hier sind meine Ideen:

  1. Festlegen eines Zeitwerts ohne korrespondierenden Frame - Ich habe versucht, immer einen Zeitpunkt festzulegen, an dem ein Frame existiert, um dem entgegenzuwirken
  2. Das Video-Frame wird nicht geladen, wenn das nächste Frame angefordert wird. Um dies zu testen, habe ich das Timeout auf 5 ms gesetzt. Dadurch wird die Anzahl der Fehler definitiv gesenkt . 

Ich habe einen Schieberegler gemacht, der die Videozeit anpasst, um den Fehler zu reproduzieren:

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>

wenn Sie JSFiddle bevorzugen: https://jsfiddle.net/tehsurfer/9ahz5rmd/52/

Dies ist ein gemeldeter Fehler in Firefox. 

AbortError: The operation was aborted

Wird an die Konsole ausgegeben, wenn entweder:

  1. Eine Suche in einem Videoelement wird abgebrochen.
  2. Die Zeit eines Videoelements wird angepasst.

Einige Entwickler dort sagen, dass Firefox in diesen Szenarien viel langsamer arbeitet als Chrome oder Edge, aber ich habe keinen Weg gefunden, einen Unterschied persönlich zu bestätigen.

Ich werde diese Antwort aktualisieren, wenn ein Bugfix oder eine Problemumgehung gefunden wird.

Aktualisieren:

Nachdem Firefox auf 60.5.1esr aktualisiert wurde, scheint es behoben zu sein und die Leistung scheint sich verbessert zu haben. Wenn Sie jedoch die Firefox Developer Edition ausführen, bleibt der Fehler auch nach dem Update bestehen.