Возьмем в качестве примера этот GIF, записанный в свободном стиле. Когда я нажимаю кнопку паузы в правом нижнем углу, вместо того чтобы остановиться в момент нажатия, он показывает первый кадр. Однако повторное нажатие кнопки для возобновления воспроизведения продолжает проигрывание с того же места, а не начинается заново, что довольно запутывает.
Я считаю, что если после нажатия воспроизведение продолжается с того же места, то должно отображаться кадр, на котором была поставлена пауза;
Или же, если после нажатия показывается первый кадр, то должно сбрасываться всё воспроизведение GIF-анимации.
Извините, но это придется оформить как запрос на новую функцию.
Остановить воспроизведение на нужном кадре крайне сложно — приходится искать компромисс. Нам пришлось бы вручную отрисовывать элементы через canvas, что может повлиять на производительность.
Ееее… Иными словами, паузы нет, есть только воспроизведение или его отсутствие. Когда воспроизведение не идет, отображается статичное изображение, и этим изображением является первый кадр. Так можно ли считать багом то, что при остановке воспроизведения отображается первый кадр, но само воспроизведение начинается не с кадра 1, а с точки, где оно было остановлено?
Моя основная задача — устранить несоответствие.
(Что ж, на самом деле я уже превысил лимит времени на редактирование своей темы.)
Честно говоря, это всё из разряда «слишком сложно». Я думаю, что если вам нужно очень предсказуемое поведение, то лучше выбрать MP4 — это обеспечит идеальную остановку.
Действительно, я привык использовать GIF на разных сайтах до такой степени, что совсем забыл об этом моменте. xD
После проверки выяснилось, что производительность MP4 довольно хорошая и вполне достаточна для моих нужд.