"Детектор" черного экрана (Системный администратор): различия между версиями
м (N.Bloshkin переименовал страницу "Детектор" черного экрана (системный администратор) в "Детектор" черного экрана (Системный администратор)) |
Нет описания правки |
||
Строка 1: | Строка 1: | ||
== '''Описание ситуации''' == | |||
У пользователей появились проблемы с трансляциями на устройствах. При воспроизведении контента– картинок, видео, на некоторых устройствах появляется «чёрный» экран. Эту проблему можно наблюдать в личном кабинете пользователя или на месте нахождения устройства. | |||
== '''Причина''' == | |||
В устройствах, работающих на местах во время проигрывания контента, появляется «чёрный экран». При этом трансляция в личном кабинете продолжает работать.<br> | |||
Эта ситуация возникла из-за различных ошибок при запуске трансляции. Итогом этой ошибки является placeholder с оповещением, который видит пользователь. | |||
Причины таких проблем могут быть разными, и их очень сложно обнаружить и поправить. | |||
В качестве причины может выступать любое действие: | |||
* Пользователь загружает видео, но это видео использует неподдерживаемый системой кодек. Тогда видео просто не может запуститься и показывает черный экран.<br> | |||
Бывает проблемы, связанные с клиентским приложением (баг), и из-за этого начинаются проблемы с трансляцией. | |||
* Пока есть наличие постоянной, стабильной сети – все работает отлично. Как только устройство теряет доступ к сети (по любой причине) – трансляция прерывается и появляется чёрный экран. | |||
[[File:.png|thumb|Список проблем из-за которых возникает черный экран|450px]] | |||
=== '''Систематичность проблемы''' === | |||
"Чёрный" экран очень сложно отследить и подтвердить визуально. Он не несет в себе систематичности по времени и может появляться как раз в месяц, так и раз в несколько дней или часов.<br> | |||
Период черного экрана определяется и подтверждает по факту у точки. В данном случае все упирается в причины, в которых, естественно нужно разбираться. | |||
== '''Концепт решения''' == | |||
{{Note|Данный функционал не доступен пользователю в личном кабинете. Его необходимо включать отдельно.|warn}} | |||
Для решения проблемы было решено создать автоматический «Детектор» черного экрана. Функционал детектора работает проактивно. Он уведомляет о проблемах с контентом на точке и оповещает о ситуации в личном кабинете.<br> | |||
У каждого клиента/компании есть свой ID связанный с сервером. К этому ID привязываются все устройства компании. С определенным промежутком сервер отправляет на устройства «ивент».<br> | |||
Запуская «ивент» устройство с помощью детектора проверяет наличие «черного экрана», делая скриншот во время запуска.<br> | |||
После запуска детектора возможно получить два вида ответа: | |||
* После запуска «ивента» черного экрана нет - система продолжает работу в штатном режиме. | |||
* После запуска «ивента» чёрный экран обнаружен - сервер отправляет повторный, проверочный "ивент".<br> | |||
Промежуток для повторной отправки составляет 10 секунд. | |||
Если же и во второй раз отправляется черный экран, то со стороны сервера отправляется письмо на почту. | |||
{{Note|Указанная почта должна быть привязана к серверу.|warn}} | |||
=== '''Тонкости и нюансы при работе функционала''' === | |||
1. Для правильного работы необходимо чтобы placeholder с белой точкой воспринимался как черный экран. Поэтому используется не абсолютная проверка. | |||
2. '''Актуально только при проигрывании видео.''' При наличии root прав на устройстве – детектор работает нормально. Но, если, на устройстве нет root прав детектор не сможет сделать скриншот.<br> | |||
'''Исключения:''' | |||
Скриншот доступен: | |||
* Если приложение подписано «подписью разработчика» (уровень прав – Signage) | |||
* Некоторые устройства (Vestel, Hikvision, Phillips) могут сделать скриншот без root прав из-за особенностей прошивки. | |||
3. Если пользователь попробует сделать скриншот без root прав, то создается «пустой скриншот» с надписью «Идёт воспроизведение видео. Отсутствуют права для снятия скриншота».<br> | |||
4. Информация от сервера к разработчикам отправляется через ивент. Внутри отправленного «ивента» сервер ждет callback от разработчиков.<br> | |||
5. Тайм – аут “Callback” на сервере составляет – 30 секунд. |
Версия от 09:35, 7 августа 2023
Описание ситуации
У пользователей появились проблемы с трансляциями на устройствах. При воспроизведении контента– картинок, видео, на некоторых устройствах появляется «чёрный» экран. Эту проблему можно наблюдать в личном кабинете пользователя или на месте нахождения устройства.
Причина
В устройствах, работающих на местах во время проигрывания контента, появляется «чёрный экран». При этом трансляция в личном кабинете продолжает работать.
Эта ситуация возникла из-за различных ошибок при запуске трансляции. Итогом этой ошибки является placeholder с оповещением, который видит пользователь.
Причины таких проблем могут быть разными, и их очень сложно обнаружить и поправить.
В качестве причины может выступать любое действие:
- Пользователь загружает видео, но это видео использует неподдерживаемый системой кодек. Тогда видео просто не может запуститься и показывает черный экран.
Бывает проблемы, связанные с клиентским приложением (баг), и из-за этого начинаются проблемы с трансляцией.
- Пока есть наличие постоянной, стабильной сети – все работает отлично. Как только устройство теряет доступ к сети (по любой причине) – трансляция прерывается и появляется чёрный экран.
Систематичность проблемы
"Чёрный" экран очень сложно отследить и подтвердить визуально. Он не несет в себе систематичности по времени и может появляться как раз в месяц, так и раз в несколько дней или часов.
Период черного экрана определяется и подтверждает по факту у точки. В данном случае все упирается в причины, в которых, естественно нужно разбираться.
Концепт решения
Для решения проблемы было решено создать автоматический «Детектор» черного экрана. Функционал детектора работает проактивно. Он уведомляет о проблемах с контентом на точке и оповещает о ситуации в личном кабинете.
У каждого клиента/компании есть свой ID связанный с сервером. К этому ID привязываются все устройства компании. С определенным промежутком сервер отправляет на устройства «ивент».
Запуская «ивент» устройство с помощью детектора проверяет наличие «черного экрана», делая скриншот во время запуска.
После запуска детектора возможно получить два вида ответа:
- После запуска «ивента» черного экрана нет - система продолжает работу в штатном режиме.
- После запуска «ивента» чёрный экран обнаружен - сервер отправляет повторный, проверочный "ивент".
Промежуток для повторной отправки составляет 10 секунд.
Если же и во второй раз отправляется черный экран, то со стороны сервера отправляется письмо на почту.
Тонкости и нюансы при работе функционала
1. Для правильного работы необходимо чтобы placeholder с белой точкой воспринимался как черный экран. Поэтому используется не абсолютная проверка.
2. Актуально только при проигрывании видео. При наличии root прав на устройстве – детектор работает нормально. Но, если, на устройстве нет root прав детектор не сможет сделать скриншот.
Исключения:
Скриншот доступен:
- Если приложение подписано «подписью разработчика» (уровень прав – Signage)
- Некоторые устройства (Vestel, Hikvision, Phillips) могут сделать скриншот без root прав из-за особенностей прошивки.
3. Если пользователь попробует сделать скриншот без root прав, то создается «пустой скриншот» с надписью «Идёт воспроизведение видео. Отсутствуют права для снятия скриншота».
4. Информация от сервера к разработчикам отправляется через ивент. Внутри отправленного «ивента» сервер ждет callback от разработчиков.
5. Тайм – аут “Callback” на сервере составляет – 30 секунд.