Детектор черного экрана

Материал из SmartPlayer
Другие языки:

Описание ситуации

У пользователя начались проблемы с трансляциями. Во время воспроизведения трансляций на устройствах контент прерывается и появляется «чёрный экран. Из-за пользователь недоволен нашей работой и продуктом.

Причина

В устройствах, работающих на местах во время проигрывания контента, появляется «чёрный экран». При этом трансляция в личном кабинете продолжает работать.
Причины этой проблемы могут быть разными. От неподдерживаемых кодеков используемых в видео, до проблем с потерей соединения с сетью.
Поэтому было решено сделать автоматизированное решение, которое поможет более оперативно оповещать и работать с этой проблемой.

Концепт решения

Для решения проблемы и ее автоматизации было решено создать «Детектор черных экранов». Его функция – заранее предупреждать нас о случившейся на конкретном устройстве проблеме. Этот функционал позволяет работать нам проактивно и не ждать оповещения о проблеме от клиента.

Данный функционал не доступен пользователю в личном кабинете. Обратитесь для его включения к системному администратору.

Принципе действия

У каждого компании работающей в нашем приложении есть свой персональный ID. Его можно найти в личном кабинете. К этому ID привязываются все устройства компании.
При возникновении ошибки с «чёрным» экраном, на одном или нескольких устройствах наш сервер отправляет «ивент» на эти устройства. Устройство этот «ивент» запускает. В момент запуска «ивента» «детектор» делает скриншот. И по этому скриншоту проверяется наличие «черного» экрана.
После запуска детектора возможно получить два вида ответа:

  1. После запуска «ивента» черного экрана нет - система продолжает работу в штатном режиме.
  2. После запуска «ивента» чёрный экран обнаружен - сервер отправляет повторный, проверочный "ивент". Промежуток для повторной отправки составляет 10 секунд.

Если вариант «2» подтверждает наличие проблемы, то со стороны сервера отправляется уведомление на почту.

Указанная почта должна обязательно должна быть привязана к серверу, иначе уведомления о проблеме приходить не будут.

Итоговый результат

После получения информации о проблеме начинается оперативное ее решение. Таким образом мы всегда знаем о проблеме первые и не заставляем лишний раз беспокоиться наших клиентов.