"Детектор" черного экрана (Системный администратор)/en: различия между версиями
Новая страница: «== '''Final Outcome:''' == The client's system administrator will be able to launch and set up the black screen detector functionality and start resolving the problem. Having Having the detector allows monitoring the problematic situation with the "Black" screen and promptly work on its correction. This is relevant both for us and for the client's employees. The SmartPlayer team and the client-side employee team will be able to interact quickly to solve the...» |
FuzzyBot (обсуждение | вклад) Обновление для соответствия новой версии исходной страницы. |
||
| Строка 1: | Строка 1: | ||
<languages/> | |||
<div class="mw-translate-fuzzy"> | |||
== '''Situation Description''' == | == '''Situation Description''' == | ||
Users are experiencing issues with broadcasts on their devices. When playing content on some devices, a "black" screen appears. This problem can be observed in the user's personal account or at the device's location. | Users are experiencing issues with broadcasts on their devices. When playing content on some devices, a "black" screen appears. This problem can be observed in the user's personal account or at the device's location. | ||
</div> | |||
<div class="mw-translate-fuzzy"> | |||
== '''Cause''' == | == '''Cause''' == | ||
On devices operating on-site, a "black screen" appears during content playback. Meanwhile, the broadcast in the personal account continues to run but only displays a "black" screen.<br> | On devices operating on-site, a "black screen" appears during content playback. Meanwhile, the broadcast in the personal account continues to run but only displays a "black" screen.<br> | ||
| Строка 12: | Строка 16: | ||
The challenge with this situation is that it doesn't have a consistent frequency; it can occur once a month, or once every few days or even hours.<br> | The challenge with this situation is that it doesn't have a consistent frequency; it can occur once a month, or once every few days or even hours.<br> | ||
The period when the black screen appears is determined empirically and is confirmed on-site. The responsibility of finding the cause of the problem falls on technical specialists. | The period when the black screen appears is determined empirically and is confirmed on-site. The responsibility of finding the cause of the problem falls on technical specialists. | ||
== ''' | </div> | ||
{{Note| | <div lang="ru" dir="ltr" class="mw-content-ltr"> | ||
=== ''' | == '''Концепт решения''' == | ||
Для решения проблемы было решено создать автоматический «Детектор» черного экрана. Он уведомляет о проблемах с контентом на устройстве и оповещает о случившейся ситуации в личном кабинете.<br> | |||
{{Note|Данный функционал не доступен пользователю в личном кабинете. Его необходимо включать отдельно.|warn}} | |||
=== '''Принцип действия''' === | |||
У каждого клиента/компании есть свой ID связанный с сервером. ID указан в личном кабинете и к нему привязываются все устройства компании.<br> | |||
* | После запуска функционала сервер с определенным промежутком по времени отправляет на устройства «ивент».<br> | ||
* | Запуская «ивент» устройство с помощью детектора проверяет наличие "черного" экрана, делая скриншот во время запуска.<br> | ||
''' | После запуска детектора возможно получить два определенных результата: | ||
* После запуска «ивента» черного экрана нет - система продолжает работу в штатном режиме. | |||
{{Note| | * После запуска «ивента» чёрный экран обнаружен - сервер отправляет повторный, проверочный "ивент".<br> | ||
=== ''' | '''Промежуток для повторной отправки "ивента" по умолчанию составляет 10 секунд.'''<br> | ||
Если же и во второй раз отправляется скриншот "чёрного" экрана то со стороны сервера отправляется письмо на почту, о наличии проблемы. | |||
* | {{Note|Указанная почта должна быть привязана к серверу.|warn}} | ||
* | </div> | ||
=== ''' | |||
<div lang="ru" dir="ltr" class="mw-content-ltr"> | |||
=== '''Подготовка ''' === | |||
Системный администратор должен настроить серверное приложение по двум параметрам: | |||
=== ''' | * Запуск и функционирование детектора "чёрного" экрана | ||
1. | * Настройка отправки письма с ошибкой на почту | ||
2. | === '''Принцип действия ''' === | ||
''' | Если серверное приложение обнаружило черный экран, оно отправляет на почту письмо. | ||
Итогом этой проверки станет сообщение на почту с оповещение о проблеме. <br> | |||
* | Для подтверждения проверки работоспособности функционала через личный кабинет системный администратор может поставить черную картинку. Сервер продолжает отправляет оповещения пока проблема не будет исправлена или же пока не будет выключен функционал.<br> | ||
* | Впоследствии системный администратор должен принять меры для устранения проблемы. | ||
3. | === '''Тонкости и нюансы при работе функционала''' === | ||
4. | 1. Для правильного работы необходимо чтобы placeholder с белой точкой воспринимался как черный экран. Поэтому используется не абсолютная проверка.<br> | ||
5. | 2. При наличии root прав на устройстве – детектор работает нормально. Но, если, на устройстве нет root прав, детектор не сможет сделать скриншот.<br> | ||
== ''' | '''Исключения:'''<br> | ||
=== ''' | Скриншот доступен: | ||
* Если приложение подписано «подписью разработчика» (уровень прав – Signage). | |||
{{Note| | * Некоторые устройства (Vestel, Hikvision, Phillips) могут сделать скриншот без root прав из-за особенностей прошивки. | ||
=== ''' | 3. Если пользователь попробует сделать скриншот без root прав, то создается «пустой скриншот» с надписью «Идёт воспроизведение видео. Отсутствуют права для снятия скриншота».<br> | ||
4. Информация от сервера к разработчикам отправляется через "ивент". Внутри отправленного «ивента» сервер ждет callback от разработчиков.<br> | |||
''' | 5. Тайм – аут “Callback” по умолчанию на сервере составляет – 30 секунд. | ||
</div> | |||
[[File:ID компании.png|thumb| | |||
<div lang="ru" dir="ltr" class="mw-content-ltr"> | |||
== '''Реализация''' == | |||
=== '''Активация''' === | |||
По умолчанию детектор для всех компаний отключен на сервере, так как создает на него слишком большую нагрузку. | |||
{{Note|Включается детектор только по запросу со стороны компании, у которой появилась проблема с чёрным экраном.|warn}} | |||
=== '''Алгоритм действия''' === | |||
Вся работа будет вестись в два этапа.<br> | |||
'''Первый этап - это запуск самого детектора'''.<br> | |||
При запуске детектора нужно использовать id компании, который указан в личном кабинете. [[File:ID компании.png|thumb|Расположение ID компании в личном кабинете |300px]] | |||
Для этого нужно зайти в профиль и развернуть подробную информацию о пользователе. | |||
Системному администратору нужно подключиться на сервер, через '''Command Line Interface (CLI)'''.<br> | |||
<div style="border: 1px solid #888; padding: 10px; margin: 10px 0; background-color: #f9f9f9;"> | <div style="border: 1px solid #888; padding: 10px; margin: 10px 0; background-color: #f9f9f9;"> | ||
При включении CLI сервер получает определенные данные для настройки:<br> | |||
Это: | |||
* | * ID компании, для которой включаем детектор | ||
* | * Можно передать платформу (или несколько платформ), для которой необходимо запустить мониторинг. | ||
Например: передаем параметр "ANDROID" и мониторинг включается только для устройств "ANDROID". | |||
* E-mail | * E-mail адрес или несколько адресов на которые должно отправляться уведомление о нештатной ситуации | ||
* | * Указанное время хранения скриншотов (по умолчанию 3 дня) | ||
</div> | </div> | ||
Далее нужно перейти в серверное приложение и выполнить команду: | |||
<code>docker exec -it | <code>docker exec -it smartplayer_backend_1 bash</code> | ||
[[File:Команда docker.png|thumb| | [[File:Команда docker.png|thumb|Команда"docker exec -it smartplayer_backend_1 bash" |300px]] | ||
На этом этапе попадаем в нашем контейнере с серверным приложением.<br> | |||
Следующей выполняем команду: | |||
<code> | <code>./cli.js company enable-screen-monitor </code>[[File:Enable screen monitor.png|thumb|Команда"./cli.js company enable-screen-monitor" |300px]] | ||
После очередного этапа система выдает вот такую строку: | |||
Системное сообщение: <code>Input company ID and press Enter</code>[[File:Системное сообщение.png|thumb|Системное сообщение "Input company ID and press Enter:" |300px]] | |||
Выполненная команда отобразит строку в которой просят ввести Id компании.<br> | |||
После ввода ID появляется запрос на мониторинг всех платформ компании. В данном случае выбираем «ДА/Y» | |||
[[File:Мониторинг всех платформ.png|thumb| | [[File:Мониторинг всех платформ.png|thumb|Здесь нужно запустить мониторинг платформ нажав "ДА/Y" |300px]] | ||
В последствии консоль потребует указать e-mail на который будут приходить оповещения о проблемах. | |||
Это делается в строке:<br> | |||
<code>Input_email and press enter</code> | <code>Input_email and press enter</code> | ||
[[File:Строка почты.png|thumb| | [[File:Строка почты.png|thumb|Команда"Input_email_and_press_Enter:" |300px]] | ||
{{Note| | {{Note|Указанная почта должна быть привязана к серверу.|warn}} | ||
Также можно указать интервал с которым будут приходить скриншоты (например 1 минута). Строка выглядит так:<br> | |||
<code>Input check interval in minutes | <code>Input check interval in `seconds` or `minutes` or `hours` or `days` and press Enter: (30 minutes)</code><br> | ||
[[File:Интервал отправки сообщения.png|thumb| | [[File:Интервал отправки сообщения.png|thumb|Пример отображения кода |300px]] | ||
Здесь нужно указать время с соответствующим префиксом(поддерживается ввод только одного префикса): | |||
<code>Company screen monitoring enabled</code> - | * секунды - seconds; | ||
[[File:Запуск детектора.png|thumb| | * минуты - minutes; | ||
=== ''' | * часы - hours; | ||
* дни - days. | |||
{{Note| | Далее применяем эту настройку через "Enter". Итогом всех манипуляций будет статус:<br> | ||
=== ''' | <code>Company screen monitoring enabled</code> - выделена зеленым цветом. Это значит что детектор черного экрана запущен. | ||
[[File:Запуск детектора.png|thumb|Оповещение о запуске Детектора выделено зелёным цветом |300px]] | |||
Проверить настроенные уведомления можно с помощью команды <code>./cli.js company show-screen-monitor</code> | |||
=== ''' | '''Отключить детектор черных экранов:''' <code>./cli.js company disable-screen-monitor</code> | ||
{{Note|''' | </div> | ||
{{Note|''' | |||
<div lang="ru" dir="ltr" class="mw-content-ltr"> | |||
=== '''Уведомления на почту''' === | |||
Второй этап настройка уведомления, которые приходят на почту. Настройка уведомления подробно прописана в отдельной инструкции [[Настройка отправки писем через серверное приложение SmartPlayer]].<br> | |||
{{Note|При получении сообщения о проблеме на почту, невозможно напрямую из этого уведомления сделать какие либо действия. К примеру «Перезагрузка экрана» или "Остановка трансляции" недоступна.|warn}} | |||
=== '''Предфинальные действия''' === | |||
В зависимости от результата, системный администратор сможет корректно определить причину и предпринять конкретные действия для устранения ситуации. Если у него не получается решить проблему внутри своей среды или же проблема на нашей стороне, он должен обратиться к команде SmartPlayer.<br> | |||
Это вариант удобен для всех. Так как поможет решить проблемы если они и с нашей стороны (например баг приложения), так и со стороны пользователя (например пользователь неправильно создал трансляцию). | |||
=== '''Важная информация о которой не стоит забывать ''' === | |||
{{Note|'''Для перезапуска трансляции надо зайти в личный кабинет и перезапустить все вручную'''|warn}} | |||
{{Note|'''Детектор черного экрана на данный момент работает только на Android версии 1.63.1'''|warn}} | |||
</div> | |||
<div class="mw-translate-fuzzy"> | |||
== '''Final Outcome:''' == | == '''Final Outcome:''' == | ||
The client's system administrator will be able to launch and set up the black screen detector functionality and start resolving the problem. Having | The client's system administrator will be able to launch and set up the black screen detector functionality and start resolving the problem. Having | ||
Having the detector allows monitoring the problematic situation with the "Black" screen and promptly work on its correction. This is relevant both for us and for the client's employees. The SmartPlayer team and the client-side employee team will be able to interact quickly to solve the problem.<br> | Having the detector allows monitoring the problematic situation with the "Black" screen and promptly work on its correction. This is relevant both for us and for the client's employees. The SmartPlayer team and the client-side employee team will be able to interact quickly to solve the problem.<br> | ||
Ordinary users will minimize the negative experience of interacting with our product. | Ordinary users will minimize the negative experience of interacting with our product. | ||
</div> | |||
Текущая версия от 15:38, 15 января 2026
Situation Description
Users are experiencing issues with broadcasts on their devices. When playing content on some devices, a "black" screen appears. This problem can be observed in the user's personal account or at the device's location.
Cause
On devices operating on-site, a "black screen" appears during content playback. Meanwhile, the broadcast in the personal account continues to run but only displays a "black" screen.
This situation arises due to various errors when starting the broadcast. The reasons for such problems can vary and are very difficult to detect.
Any of the following actions can be a cause:
- A user uploads a video, but this video uses a codec unsupported by the system. As a result, the video simply cannot start and displays a black screen. There are issues related to the client application (a bug), leading to broadcast problems
- As long as there is a consistent, stable network, everything works fine. However, as soon as the device loses network access (for any reason), the broadcast is interrupted, and a black screen appears.

Frequency of the Problem
It's very easy to detect and visually confirm the "black" screen. In such cases, the personal account is very helpful.
The challenge with this situation is that it doesn't have a consistent frequency; it can occur once a month, or once every few days or even hours.
The period when the black screen appears is determined empirically and is confirmed on-site. The responsibility of finding the cause of the problem falls on technical specialists.
Концепт решения
Для решения проблемы было решено создать автоматический «Детектор» черного экрана. Он уведомляет о проблемах с контентом на устройстве и оповещает о случившейся ситуации в личном кабинете.
Принцип действия
У каждого клиента/компании есть свой ID связанный с сервером. ID указан в личном кабинете и к нему привязываются все устройства компании.
После запуска функционала сервер с определенным промежутком по времени отправляет на устройства «ивент».
Запуская «ивент» устройство с помощью детектора проверяет наличие "черного" экрана, делая скриншот во время запуска.
После запуска детектора возможно получить два определенных результата:
- После запуска «ивента» черного экрана нет - система продолжает работу в штатном режиме.
- После запуска «ивента» чёрный экран обнаружен - сервер отправляет повторный, проверочный "ивент".
Промежуток для повторной отправки "ивента" по умолчанию составляет 10 секунд.
Если же и во второй раз отправляется скриншот "чёрного" экрана то со стороны сервера отправляется письмо на почту, о наличии проблемы.
Подготовка
Системный администратор должен настроить серверное приложение по двум параметрам:
- Запуск и функционирование детектора "чёрного" экрана
- Настройка отправки письма с ошибкой на почту
Принцип действия
Если серверное приложение обнаружило черный экран, оно отправляет на почту письмо.
Итогом этой проверки станет сообщение на почту с оповещение о проблеме.
Для подтверждения проверки работоспособности функционала через личный кабинет системный администратор может поставить черную картинку. Сервер продолжает отправляет оповещения пока проблема не будет исправлена или же пока не будет выключен функционал.
Впоследствии системный администратор должен принять меры для устранения проблемы.
Тонкости и нюансы при работе функционала
1. Для правильного работы необходимо чтобы placeholder с белой точкой воспринимался как черный экран. Поэтому используется не абсолютная проверка.
2. При наличии root прав на устройстве – детектор работает нормально. Но, если, на устройстве нет root прав, детектор не сможет сделать скриншот.
Исключения:
Скриншот доступен:
- Если приложение подписано «подписью разработчика» (уровень прав – Signage).
- Некоторые устройства (Vestel, Hikvision, Phillips) могут сделать скриншот без root прав из-за особенностей прошивки.
3. Если пользователь попробует сделать скриншот без root прав, то создается «пустой скриншот» с надписью «Идёт воспроизведение видео. Отсутствуют права для снятия скриншота».
4. Информация от сервера к разработчикам отправляется через "ивент". Внутри отправленного «ивента» сервер ждет callback от разработчиков.
5. Тайм – аут “Callback” по умолчанию на сервере составляет – 30 секунд.
Реализация
Активация
По умолчанию детектор для всех компаний отключен на сервере, так как создает на него слишком большую нагрузку.
Алгоритм действия
Вся работа будет вестись в два этапа.
Первый этап - это запуск самого детектора.

Для этого нужно зайти в профиль и развернуть подробную информацию о пользователе.
Системному администратору нужно подключиться на сервер, через Command Line Interface (CLI).
При включении CLI сервер получает определенные данные для настройки:
Это:
- ID компании, для которой включаем детектор
- Можно передать платформу (или несколько платформ), для которой необходимо запустить мониторинг.
Например: передаем параметр "ANDROID" и мониторинг включается только для устройств "ANDROID".
- E-mail адрес или несколько адресов на которые должно отправляться уведомление о нештатной ситуации
- Указанное время хранения скриншотов (по умолчанию 3 дня)
Далее нужно перейти в серверное приложение и выполнить команду:
docker exec -it smartplayer_backend_1 bash

На этом этапе попадаем в нашем контейнере с серверным приложением.
Следующей выполняем команду:
./cli.js company enable-screen-monitor 
После очередного этапа система выдает вот такую строку:
Системное сообщение:Input company ID and press Enter
Выполненная команда отобразит строку в которой просят ввести Id компании.
После ввода ID появляется запрос на мониторинг всех платформ компании. В данном случае выбираем «ДА/Y»

В последствии консоль потребует указать e-mail на который будут приходить оповещения о проблемах.
Это делается в строке:
Input_email and press enter

Также можно указать интервал с которым будут приходить скриншоты (например 1 минута). Строка выглядит так:
Input check interval in `seconds` or `minutes` or `hours` or `days` and press Enter: (30 minutes)

Здесь нужно указать время с соответствующим префиксом(поддерживается ввод только одного префикса):
- секунды - seconds;
- минуты - minutes;
- часы - hours;
- дни - days.
Далее применяем эту настройку через "Enter". Итогом всех манипуляций будет статус:
Company screen monitoring enabled - выделена зеленым цветом. Это значит что детектор черного экрана запущен.

Проверить настроенные уведомления можно с помощью команды ./cli.js company show-screen-monitor
Отключить детектор черных экранов: ./cli.js company disable-screen-monitor
Уведомления на почту
Второй этап настройка уведомления, которые приходят на почту. Настройка уведомления подробно прописана в отдельной инструкции Настройка отправки писем через серверное приложение SmartPlayer.
Предфинальные действия
В зависимости от результата, системный администратор сможет корректно определить причину и предпринять конкретные действия для устранения ситуации. Если у него не получается решить проблему внутри своей среды или же проблема на нашей стороне, он должен обратиться к команде SmartPlayer.
Это вариант удобен для всех. Так как поможет решить проблемы если они и с нашей стороны (например баг приложения), так и со стороны пользователя (например пользователь неправильно создал трансляцию).
Важная информация о которой не стоит забывать
Final Outcome:
The client's system administrator will be able to launch and set up the black screen detector functionality and start resolving the problem. Having
Having the detector allows monitoring the problematic situation with the "Black" screen and promptly work on its correction. This is relevant both for us and for the client's employees. The SmartPlayer team and the client-side employee team will be able to interact quickly to solve the problem.
Ordinary users will minimize the negative experience of interacting with our product.