'AbortError: операция была прервана.' - Ошибка при настройке HTML 5 video.currentTime в Firefox
При использовании Firefox и изменении положения видео с использованием HTML5-видео. Кто-нибудь имеет представление о причинах этого?
Вот мои идеи:
- Установка значения времени, у которого нет соответствующего кадра - я всегда пытался установить время, когда существует кадр, чтобы противостоять этому
- Кадр видео не загружается к тому времени, когда запрашивается следующий кадр - чтобы проверить это, я установил тайм-аут на 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="vp8, vorbis"" src="http://www.html5rocks.com/tutorials/video/basics/Chrome_ImF.webm"></source>
<source type="video/ogg; codecs="theora, vorbis"" src="http://www.html5rocks.com/tutorials/video/basics/Chrome_ImF.ogv"></source>
<source type="video/mp4; codecs="avc1.42E01E, mp4a.40.2"" src="http://www.html5rocks.com/tutorials/video/basics/Chrome_ImF.mp4"></source>
<p>Sorry, your browser does not support the <video> 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>
Ответы
Ответ 1
Это ошибка в Firefox.
AbortError: The operation was aborted
Выводится на консоль, когда либо:
- Элемент поиска в видео прерывается.
- Время элемента видео настроено.
Некоторые разработчики говорят, что Firefox работает намного медленнее, чем Chrome или Edge в этих сценариях, но я не нашел способа лично проверить разницу.
Я обновлю этот ответ, если будет найдено исправление или обходной путь.
Обновление:
После обновления Firefox до 60.5.1esr он, кажется, исправлен, и производительность, кажется, улучшилась. Однако, если вы используете Firefox Developer Edition, ошибка все равно остается даже после обновления.