Описание
В связи с быстрым приближением удаления синхронного XMLHttpRequest
(например: Chrome 88 удаляет это), я ищу следующий оптимальный альтернативный метод для предварительного кэширования видео.
«Синхронный XMLHttpRequest - ужасная идея» - никто никогда не говорил
Да, вы правы для большинства сценария ios но это другое.
Ранее
На android и ios компания, в которой я работаю, имеет SDK, который открывается a webview в фоновом режиме, внедряет в него HTML и ожидает срабатывания события onload
. Это уведомляет SDK, когда веб-просмотр готов к показу пользователю.
Это обязательно , что при воспроизведении видео НЕТ буферизация вообще для лучшего возможный опыт.
Это почему , когда веб-просмотр загружается в фоновом режиме, мы предварительно кэшируем видео синхронно с XMLHttpRequest (что, как следствие, задерживает onload
событие от увольнения).
Возможные решения
Мы думали о нескольких различных решениях, и у каждого из них есть свои плюсы и минусы; вот несколько:
- Предварительная загрузка содержимого через
<link rel="preload" ... />
- Вставьте видео на страницу
index.html
в base64 (если видео веса 2-3Mo, он будет весить на 30% больше после преобразования в base64)
(1) - самый чистый метод, но требует некоторых тяжелых изменений в нашем бэкэнде для различных причины. Также нет гарантии, что видео будет полностью кэшировано к моменту появления браузера / веб-просмотра. Нет гарантии, что приоритет предварительного кэширования будет одинаковым для веб-просмотров и мобильных браузеров. Пользователи могут отключить функции предварительного кэширования, например, в своей конфигурации Chrome. Он также не работает при подключении 4G или ниже ( вздох ).
(2) - хакерский и неоптимизированный метод, но относительно прост в реализации по сравнению с на (1)
Вопрос
Какой следующий лучший метод предварительного кэширования видео в фоновом режиме веб-браузера / мобильного браузера, который:
- Гарантии (или полностью гарантирует) отсутствие буферизации при воспроизведении видео
- Выполняется в веб-просмотре / браузере
- Является ли (желательно) кросс-мобильный браузер / веб-просмотр совместимым
- (желательно и не обязательно) задерживает запуск события
onload
Примечание: не все пользователи могут иметь соединение 4G или Wi-Fi. Note2: тег находится в режиме автовоспроизведения