Среда:
Мобильная веб версия, iPhone 13, Google Chome +- последних версий.
Допускаю что это во всех веб средах
Суть:
Есть фича, которая останавливает видео если само видео уходит за область видимости устройства. Полезная фича, не надо стопать видео, скролишь вниз оно само останавливается.
Проблема:
Остановка происходит ТОЛЬКО если видео загрузилось. Если не дожидаться прогрузки видео и проскролить вниз - оно запустится и не будет останавливаться до завершения видеоролика.
Способ воспроизведения:
- В консоли разработчика ограничить скорость интернета
- Найти в ленте видео (я тестил на внутреннем видео плеере пикабу, допускаю что на альтернативных площадках тоже воспроизводится)
- Запустить видео, не дожидаясь загрузки проскролить вниз или вверх, убрав видео из области экрана
- Дождаться воспроизведения видео, зафиксировав не срабатывания фичи остановки видео
P.S.
Т.к. я чуть в теме мне ясна природа бага.
При запуске видео на стринцу вешается событие intersection observer на video тэг, мы скроллом тригерим срабатывание линтера и происходит команда остановки видео, но видео еще не loaded, из за чего и свойство pause() у него нет. Потому мы дергаем остановку, но она не срабатывает и видео как только загрузится - запускается
В решения не копал, но на поверхности 2 варианта. Жестко останавливать загрузку видео при страбатывании тригера выхода из экрана (Например удалить src и вставить заново, костыль, но в эту сторону можно поглядеть чет поэлегантнее) или же событие по остановке видео сделать асинхронным, сперва дожидаясь загрузки и только после нее останавливать.
Второй вариант выглядит более правильным, но увеличивает сложность и шанс багов на асинхронщине)
P.P.S. Понятное дело что это минор и низкий приоритет, но я ловлю этот баг 2-3 раза в неделю точно. Не критично, но подбешивает. Если будет возможность пофиксить - буду признателен