Это действительно озадачивает, и мы подозреваем ошибку iOS.
Ситуация:
У нас есть сайт с видеоконтентом, где мы размещаем видео как mp4
и пользователи могут воспроизводить их. Эти видео отображаются в браузере HTML5 игроков. Часто на одной странице отображается несколько видео.
Проблема
Мы начали получать отчеты от некоторых пользователей, все на устройствах iOS, что небольшое подмножество этих видео показывалось для них как неиграбельное, как показано ниже:
Теперь, опять же, этого не произойдет для всех видео на их экран, только некоторые. Когда видео просматривается на устройстве, отличном от iOS, все в порядке; все видео воспроизводимы. Для этих пользователей не имеет значения, какой браузер они используют на этом устройстве, возникает та же проблема.
Что мы изучили
Сначала мы рассмотрены распространенные HTML5 проблемы с воспроизведением видео, связанные с Safari (и iOS). Например, чтобы сервер отвечал на Range
запросов, включая playsinline
и так далее. Запросы и ответы выглядели хорошо, что имело смысл, потому что все эти видео перекодированы в один и тот же формат и размещены на одном сервере (Digital Ocean Spaces).
Как только мы смогли воспроизвести эту проблему на iOS мы увидели, что это был не тег видео; даже прямой доступ к mp4
(без HTML) в браузере (неважно, какой именно) не будет работать:
Это поддержал бы идею, что это не работает ни в одном браузере. Вот несколько загадочных деталей, которые мы нашли в ходе нашего тестирования (мы тестируем с помощью онлайн-сервиса, который предоставляет нам доступ к iOS симуляторам):
- Это происходит только с некоторыми (небольшая часть нашего) видео, большинство видео будет всегда работать
- Для видео, которые не работают, для каждого симулятора перезапуска есть примерно 50/50 шансов, будет ли он работать или нет. Если он работает (или нет), он будет оставаться в этом состоянии до следующего перезапуска
- . В течение того же сеанса симулятора никакое число перезапусков ** устройства * не изменит состояние с неработающего на работающее
- Похоже, что это происходит на iOS 12.4 и выше, iPad и iPhone (протестировано с помощью симулятора)
При поиске на форумах Apple, в последнее время возникает немало проблем с видео воспроизведение, более сфокусированное на обновлении 13.4.
Пример
Мы смогли воссоздать его со стоковыми видео. Просто для контекста, нам потребовалось около 16 видео, прежде чем мы получили 1 сбой.
Работает
Не работает
Когда мы получаем доступ к «не работающей» ссылке в iOS симуляторе (iPhone XS, iOS 12.4), она каждый раз терпит неудачу.
В любом случае, у нас заканчиваются идеи относительно того, как это может решаться и, возможно, просто искать подтверждение, что это может быть известной iOS проблемой. Кто-нибудь испытывал это?