From 8610f45a298981a220db7f04c2ec878fddc76f84 Mon Sep 17 00:00:00 2001 From: Fedorov Vladimir Date: Sun, 18 Oct 2026 01:47:42 +0700 Subject: [PATCH] up --- COMPLETED_TASKS.md | 29 ++++++++++++++++++++++------- PLAN.md | 18 ++++++++---------- README.md | 6 +++--- TASKS.md | 11 +++++------ docs/EVENT_CHECKLIST.md | 4 ++-- docs/SCREEN-001_ACCEPTANCE.md | 2 +- docs/SCREEN-006_ACCEPTANCE.md | 12 ++++++------ docs/SCREEN-007_ACCEPTANCE.md | 2 +- docs/SCREEN-008_ACCEPTANCE.md | 4 ++-- docs/SCREEN-008_RESULTS.md | 3 +-- docs/USER_GUIDE.md | 19 +++++++++---------- 11 files changed, 60 insertions(+), 50 deletions(-) diff --git a/COMPLETED_TASKS.md b/COMPLETED_TASKS.md index 3eaadcc..45f78f3 100644 --- a/COMPLETED_TASKS.md +++ b/COMPLETED_TASKS.md @@ -119,20 +119,20 @@ - Цель: выбирать доступную организатору игру онлайн и сохранять автономность показа. - Объём: существующая авторизация, список игр, загрузка пакета, снимок результатов, индикатор связи, проверка новой версии материалов, синхронизация статуса показа. - Телефон отправляет команды существующему серверу сайта; desktop получает - обновления через экранную сессию и GetScreenState (существующий polling 1000 мс). + Приложение экрана получает обновления от существующего сервера сайта через + экранную сессию и GetScreenState (существующий polling 1000 мс). Серверные команды применяются локальным контроллером к подготовленным файлам; - повторная версия не применяется дважды. Прямого подключения телефона к desktop нет. + повторная версия не применяется дважды. Уточнить минимальный серверный контракт по фактической реализации. - Готовность: готовая игра открывается после перезапуска офлайн; секреты хранятся средствами ОС, не в пакете; истечение сессии не обрывает уже подготовленный локальный показ; обновления активируются явно. Результаты имеют время снимка. Возврат сети не повторяет устаревшие команды поверх локальных действий. - При доступном сервере телефон управляет показом через существующий сайт; без сети - воспроизведение и пульт компьютера продолжают работать. + При доступном сервере приложение получает команды через экранную сессию; + без сети воспроизведение и пульт компьютера продолжают работать. - Проверка: сценарии offline/reconnect/истёкшей сессии/обновления игры; проверки затронутых репозиториев; существующий браузерный экран продолжает работать. -- Не входит: полноценная офлайн-игра, LAN-сервер и отдельный мобильный пульт desktop. +- Не входит: полноценная офлайн-игра и локальный сервер. - Дата: 2026-10-17. Реализация только screen; бэкенд, сайт и protobuf не менялись. - Результат: вход по email/паролю, проверка существующих прав, список игр, единое обновление JWT для конкурентных запросов, выход без прерывания показа. @@ -147,7 +147,7 @@ автоматического открытия окна и звука. Снимок результатов сохраняется отдельно по ключу пакета, содержит только поля таблицы и время получения; ошибка API оставляет последний успешный снимок. Сервер выдаёт результаты после finish. -- Управление: по выбору владельца общий пульт телефона и компьютера. Создание и +- Управление: локальный пульт компьютера и серверные команды. Создание и привязка экранной сессии существующим API; GetScreenState раз в 1000 мс только при открытом показе, без параллельных запросов. Первая версия при подключении, повторном открытии и восстановлении сети — исходная отметка без старых команд. @@ -222,3 +222,18 @@ сервер; физический проектор, звук и рабочий сервер отдельно не проверялись. Сборка предупреждает о JS chunk >500 kB. Установочные архивы не пересобирались; commit и push не выполнялись. + + +## SCREEN-011 — Актуализировать описание взаимодействия экрана и сервера + +- Статус: `DONE`. +- Дата: 2026-10-18. +- Результат: из README, плана, задач, архива, руководства и инструкций приёмки + удалены описания и требования проверки исключённого способа управления. + Документация описывает приложение экрана, сервер и существующий сайт. + ID отменённой SCREEN-009 и фактические результаты прежних проверок сохранены. +- Границы: изменена только документация evening_detective_screen; код, + серверные API, синхронизация и установочные архивы не менялись. +- Проверки: повторный поиск устаревших упоминаний, локальные Markdown-ссылки, + ссылки на переименованные разделы, ручное ревью diff и git diff --check — PASS. + Тесты приложения не запускались: исполняемый код не менялся. diff --git a/PLAN.md b/PLAN.md index d35c1c9..eb2e180 100644 --- a/PLAN.md +++ b/PLAN.md @@ -7,7 +7,7 @@ внешнем дисплее. Аудио, видео, изображения и выбранные музыкальные плейлисты читаются с диска. Пульт переключает показ и управляет воспроизведением локально. После подготовки потеря интернета не мешает локальному показу и таймеру. -Телефон управляет через существующий сервер сайта; приложение экрана получает с сервера +Приложение экрана подключается к существующему серверу сайта и получает обновления состояния. При потере интернета доступен локальный пульт компьютера. «Все материалы» в первой версии — все ресурсы, необходимые окну показа: @@ -77,16 +77,15 @@ Linux проверяется на обоих указанных дистрибу Токены не записываются в пакет игры и логи. 6. После подготовки основной процесс применяет локальные команды пульта компьютера через IPC без ожидания сервера. Материалы воспроизводятся с диска. -7. Телефон использует существующий пульт на сайте и отправляет команды серверу. +7. Пульт на сайте отправляет команды существующему серверу. Приложение экрана подключается к серверу как экранная сессия и получает обновления через существующий API CreateScreenSession/GetScreenState. Текущий браузерный экран опрашивает состояние раз в 1000 мс; desktop использует тот же серверный поток. - HTTP-сервер, WebSocket-сервер, сопряжение и отдельный мобильный пульт в desktop не нужны. 8. Подключение игры, авторизация и получение серверных обновлений реализуются в SCREEN-006. Серверные команды проходят через локальный контроллер и используют подготовленные - файлы. Одну версию команды нельзя применять повторно. При потере сети телефон - не управляет desktop; уже запущенное воспроизведение и локальный пульт продолжают - работать. При восстановлении сети необходимо сверить версии и не повторять + файлы. Одну версию команды нельзя применять повторно. При потере сети + уже запущенное воспроизведение и локальный пульт продолжают работать. + При восстановлении сети необходимо сверить версии и не повторять устаревшую команду поверх локальных действий; правила согласования проверяются в SCREEN-006 на существующих ScreenState/ScreenCommand. 9. Текущие результаты игры загружаются онлайн с отметкой времени; офлайн доступны @@ -120,7 +119,7 @@ Linux проверяется на обоих указанных дистрибу 3. SCREEN-003: реализовать надёжную загрузку и локальное хранение пакетов. 4. SCREEN-004: реализовать локальный проигрыватель и команды, подготовку медиа. 5. SCREEN-005: собрать пульт, план показа и режимы экрана. -6. SCREEN-006: добавить подключение игры, обновления экрана с сервера и управление с телефона через сайт. +6. SCREEN-006: добавить подключение игры, обновления экрана с сервера и серверные команды через сайт. 7. SCREEN-007: обработать отключение дисплея, звук, сон и восстановление. 8. SCREEN-008: собрать артефакты для всех шести вариантов и провести приёмку на площадке. @@ -140,7 +139,7 @@ Linux проверяется на обоих указанных дистрибу - В SCREEN-001 для каждой тестовой конфигурации зафиксировать ОС, архитектуру, CPU/RAM, проектор/переходник, аудиовыход, форматы, разрешение и размер медиа. - Полное управление игрой, локальный Go-сервер/БД, редактирование сценария, - автообновления и прямое управление desktop с телефона по LAN — за пределами MVP. + автообновления — за пределами MVP. - Подпись и notarization зависят от наличия Apple Developer; без них не обещать установку без предупреждений Gatekeeper. Для Windows отдельно зафиксировать наличие сертификата подписи и возможные предупреждения установки. Учётные данные не хранить в репозитории. @@ -150,8 +149,7 @@ Linux проверяется на обоих указанных дистрибу Для нового приложения настроить type-check, lint, lint:css и build; покрывать тестами нетривиальные переходы, IPC, проверку пакетов и восстановление загрузок. Для Electron использовать sandbox, contextIsolation и отключённый nodeIntegration. -Мобильный пульт проверять в Safari на iPhone и Chrome на Android. Замеры для -телефона вести отдельно: порог 150 мс относится к пульту компьютера. +Порог задержки 150 мс относится к пульту компьютера. Перед изменениями Vue изучить `../evening_detective_frontend/docs/FRONTEND_CODE_STANDARD.md` и применять подходящие правила. При изменениях соседних репозиториев обязательны diff --git a/README.md b/README.md index e498fe1..ffef996 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ снимки результатов и команды существующего сервера. SCREEN-001 и SCREEN-004 остаются IN_PROGRESS до аппаратной приёмки. Подготовленная игра восстанавливается офлайн без автоматического открытия показа и запуска звука. -Управление с телефона идёт через существующий сервер сайта; прямого LAN-подключения нет. +Приложение экрана получает обновления через существующий сервер сайта. SCREEN-010 реализована: в пульте доступен редактор общего серверного плана экранов с локальной копией для офлайн-переходов. Подробности — в руководстве. @@ -80,11 +80,11 @@ npm run dev Тестовый режим сохраняет отдельный выбор WAV/видео; игровые пакеты выбираются в разделе «Материалы показа». В блоке «Игра и сервер» доступны вход, список игр и загрузка материалов. -Для команд телефона войдите, подготовьте и выберите игру, подключите управление +Для получения серверных команд войдите, подготовьте и выберите игру, подключите управление и откройте показ. Первое состояние не запускает накопленные команды; отправьте новую команду на сайте. После обрыва сети локальный пульт продолжает работать, первое состояние при восстановлении также пропускается. -[Проверка с существующим сервером и телефоном](docs/SCREEN-006_ACCEPTANCE.md). +[Проверка связи с существующим сервером](docs/SCREEN-006_ACCEPTANCE.md). Токены хранятся в основном процессе и сохраняются средствами ОС отдельно от пакетов. Если защищённое хранилище недоступно, вход действует только до закрытия diff --git a/TASKS.md b/TASKS.md index 148b122..af89678 100644 --- a/TASKS.md +++ b/TASKS.md @@ -2,8 +2,8 @@ SCREEN-001, SCREEN-004, SCREEN-007 и SCREEN-008 имеют статус IN_PROGRESS; SCREEN-002, SCREEN-003, SCREEN-005 и SCREEN-006 завершены и перенесены в архив; остальные активные задачи — TODO. -SCREEN-009 (LAN-пульт) отменена владельцем; ID не переиспользовать. -Управление телефоном через сервер входит в SCREEN-006. План и общие ограничения: +SCREEN-009 отменена владельцем; ID не переиспользовать. +Связь приложения экрана с сервером входит в SCREEN-006. План и общие ограничения: [PLAN.md](PLAN.md). Идентификаторы независимы от ED-* в корневом списке. Обновлять статус и результат здесь; завершённые записи переносить в `COMPLETED_TASKS.md` в этом каталоге после проверки. Коммиты и push не выполнять. @@ -33,9 +33,8 @@ SCREEN-009 (LAN-пульт) отменена владельцем; ID не пе - Результат программного этапа: Electron + Vue/TypeScript/Vite, два изолированных окна, выбор внешнего дисплея, локальный протокол с Range, синтетические WAV/H.264+AAC, start/pause/stop/seek, подтверждённые статусы и замеры аудио/видео. - По уточнению владельца LAN-сервер, сопряжение, мобильный UI и зависимости ws - удалены. Телефон управляет через сервер сайта; desktop получает обновления - в SCREEN-006. Полные игровые функции и сервер пока не переносились. + По уточнению владельца лишняя сетевая инфраструктура и зависимости ws + удалены. Получение обновлений от сервера реализовано в SCREEN-006. Полные игровые функции и сервер пока не переносились. - Проверка после уточнения: type-check, lint, lint:css, build, 4 теста и GUI smoke — PASS. В smoke проверено отсутствие LAN-панели и методов lan/approve в preload, локальные play/pause/stop/seek, Range и открытие окна без автоповтора. @@ -243,6 +242,6 @@ SCREEN-009 (LAN-пульт) отменена владельцем; ID не пе типы, линтеры и GUI smoke — PASS. Аппаратная приёмка остаётся открытой. - Открыто: получить macOS x64/arm64 через workflow после commit/push владельцем; выполнить аппаратную матрицу, включая оба Linux-дистрибутива, час офлайн, - проектор/звук/телефон и физические замеры на M1. Статус IN_PROGRESS до получения + проектор/звук и физические замеры на M1. Статус IN_PROGRESS до получения результатов всех стендов. SCREEN-001/004/007 также не закрываются. Бэкенд, сайт, protobuf и зависимости не менялись; commit/push не выполнялись. diff --git a/docs/EVENT_CHECKLIST.md b/docs/EVENT_CHECKLIST.md index 7d691f6..6495e21 100644 --- a/docs/EVENT_CHECKLIST.md +++ b/docs/EVENT_CHECKLIST.md @@ -22,7 +22,7 @@ - [ ] В ОС выбран нужный аудиовыход. Пробный звук слышен физически, mute выключен, громкость основного канала и музыки подходит для помещения. - [ ] После подключения HDMI аудиовыход проверен повторно. -- [ ] Перед подключением телефона проверено название в строке «Игра для управления»; +- [ ] Перед подключением к серверу проверено название в строке «Игра для управления»; подключено управление этой игрой, проверен номер экрана, связь с сервером и новая команда с сайта. Проверено назначение звука экрану и отдельно локальное выключение звука. @@ -45,7 +45,7 @@ и выбор внешнего дисплея; явно нажать «Открыть показ» после восстановления. - [ ] При отсутствии звука проверить системный выход, HDMI, mute и громкость обоих каналов. - [ ] После аварии проверить остаток таймера на паузе; медиа запускать явно. -- [ ] После возврата сети дождаться связи и отправить новую команду телефона. +- [ ] После возврата сети дождаться связи и отправить новую команду через сайт. - [ ] При повторном сбое сохранить журналы и сведения по [руководству](USER_GUIDE.md#журналы-и-обращение-за-помощью). diff --git a/docs/SCREEN-001_ACCEPTANCE.md b/docs/SCREEN-001_ACCEPTANCE.md index c1a2a36..655db6f 100644 --- a/docs/SCREEN-001_ACCEPTANCE.md +++ b/docs/SCREEN-001_ACCEPTANCE.md @@ -52,7 +52,7 @@ $env:ELECTRON_BUILDER_COMPRESSION_LEVEL='1'). Она меняет степень ## Актуальность сборок -После удаления LAN-пульта архивы Linux/Windows x64/ARM64 пересобраны из текущего +После удаления лишней сетевой инфраструктуры архивы Linux/Windows x64/ARM64 пересобраны из текущего кода. Содержимое app.asar сверено: LAN-модулей, ws и тестов в поставке нет. Контрольные суммы обновлены в release/SHA256SUMS. Type-check, lint, lint:css, build, 4 теста и GUI smoke — PASS, включая запуск кнопкой локального пульта. diff --git a/docs/SCREEN-006_ACCEPTANCE.md b/docs/SCREEN-006_ACCEPTANCE.md index a258809..71008d9 100644 --- a/docs/SCREEN-006_ACCEPTANCE.md +++ b/docs/SCREEN-006_ACCEPTANCE.md @@ -17,11 +17,11 @@ до выхода из приложения. На Linux требуется рабочий libsecret/KWallet; `basic_text` не используется для сохранения секретов. -## Команды с телефона +## Серверные команды 1. Нажать «Подключить управление этой игрой», записать номер экрана. Открыть показ на внешнем дисплее. Дождаться сообщения о связи. -2. На телефоне открыть существующую страницу управления этой игрой. +2. Открыть существующую страницу управления этой игрой на сайте. Убедиться, что экран появился в её списке. Назначить звук этому экрану через сайт или одноимённую кнопку приложения; это отключает звук других экранов игры по существующим правилам сервера. @@ -30,8 +30,8 @@ 4. Проверить текст, настройку/пуск/паузу/сброс таймера и музыку: выбор трека, громкость, повтор и автоматический переход. Все используемые ресурсы должны быть в скачанном пакете; новый плейлист требует подготовки материалов. -5. Чередовать телефон и компьютер. Локальная пауза не должна отменяться повтором - того же серверного состояния. Новая команда телефона должна применяться. +5. Чередовать серверные команды и локальный пульт. Локальная пауза не должна отменяться повтором + того же серверного состояния. Новая серверная команда должна применяться. Команды компьютера действуют только на этот показ и не рассылаются другим экранам. 6. Проверить прежний браузерный экран отдельно: его вход, привязка и команды должны работать как раньше. Общие команды игры по-прежнему относятся ко всем @@ -49,8 +49,8 @@ 1. Во время воспроизведения отключить сеть компьютера. Проверить локальные play/pause/seek, переход музыки и продолжающийся таймер. 2. При отключённой сети изменить показ локально, затем отправить команду - телефоном. Вернуть сеть: накопленное состояние не должно отменить локальное - действие. Следующая новая команда телефона должна примениться. + через сайт. Вернуть сеть: накопленное состояние не должно отменить локальное + действие. Следующая новая серверная команда должна примениться. 3. Проверить истечение пользовательского входа и отдельно недействительную экранную сессию на тестовом сервере. Показ не прерывается; интерфейс предлагает повторный вход или подключение управления. Не менять рабочую базу ради проверки. diff --git a/docs/SCREEN-007_ACCEPTANCE.md b/docs/SCREEN-007_ACCEPTANCE.md index 36dcbe6..62b637e 100644 --- a/docs/SCREEN-007_ACCEPTANCE.md +++ b/docs/SCREEN-007_ACCEPTANCE.md @@ -73,7 +73,7 @@ Внешний дисплей предвыбирается только при совпадении сохранённых ID и названия; другой экран требуется выбрать вручную. Автоматического открытия нет. 3. Вернуть сеть и подключить управление игрой. После аварийного закрытия - отправить телефоном команду PLAY, затем восстановить и вручную открыть показ. + отправить через сайт команду PLAY, затем восстановить и вручную открыть показ. Накопленная команда не запускает звук. Следующая новая команда применяется. 4. Закрыть приложение во время показа. Звук прекращается, блокировка сна освобождается, материалы остаются на диске. При повторном запуске нет автопуска. diff --git a/docs/SCREEN-008_ACCEPTANCE.md b/docs/SCREEN-008_ACCEPTANCE.md index 03b67bb..99a32cd 100644 --- a/docs/SCREEN-008_ACCEPTANCE.md +++ b/docs/SCREEN-008_ACCEPTANCE.md @@ -122,14 +122,14 @@ preload, локальную выдачу Range, восстановление п относится только к M1 с 16 ГБ RAM. 2. Войти, скачать настоящую игру, выбрать её и открыть показ на реальном внешнем дисплее. Проверить восемь режимов, план, текст/кириллицу, таймер, музыку и результаты - по SCREEN-005/006. Проверить телефон в Safari iPhone и Chrome Android через сайт. + по SCREEN-005/006. 3. Отключить сеть на час и пройти полный показ с музыкой, перемоткой, таймером и сменой сцен. Готовые файлы не должны требовать сети; пульт/технические ошибки не должны появляться на проекторе. Записать стабильность и ошибки журнала. 4. Выполнить SCREEN-007: переподключение проектора, смена параметров дисплея, fullscreen, автоматический/принудительный сон, кабельный/USB/HDMI звук. Восстановление требует явного открытия; медиа остановлены, таймер на паузе. -5. Вернуть сеть. Старая команда телефона не отменяет локальное действие; +5. Вернуть сеть. Старая серверная команда не отменяет локальное действие; новая команда применяется. Завершить игру и сохранить результаты с датой снимка. 6. Перезапустить приложение без сети: выбранная игра/снимок доступны, окно показа закрыто, звук не начинается. Заменить папку приложения новой сборкой с тем же diff --git a/docs/SCREEN-008_RESULTS.md b/docs/SCREEN-008_RESULTS.md index 0df1b4d..5cf78f2 100644 --- a/docs/SCREEN-008_RESULTS.md +++ b/docs/SCREEN-008_RESULTS.md @@ -61,7 +61,7 @@ macOS нет. Этот стенд не подтверждает Ubuntu/Debian, наблюдения, но видимость/работоспособность пульта владельцем ещё не подтверждены. Обычный запуск пока не отмечается PASS; тестовые флаги для обхода не добавлялись. - Ожидается подключение реального проектора и подтверждение интерфейса владельцем. - Физический звук, час офлайн, телефон, сон, переподключение и замеры не выполнены. + Физический звук, час офлайн, сон, переподключение и замеры не выполнены. Этот Manjaro-стенд не заменяет Ubuntu/Debian из обязательной матрицы. ## Проверка согласования интерфейса (2026-10-17) @@ -145,7 +145,6 @@ isVisible() подтвердили внутреннее состояние Elect - Аудиовыходы (кабель/USB/HDMI) и форматы: - Предупреждения неподписанного запуска и результат установки: - Подготовка/восемь режимов/музыка/таймер/результаты: -- Телефон Safari iPhone / Chrome Android: - Час работы офлайн; отключение и возврат сети: - Переподключение дисплея/fullscreen/сон/перезапуск: - Замена приложения с сохранением профиля: diff --git a/docs/USER_GUIDE.md b/docs/USER_GUIDE.md index df3224e..16d625f 100644 --- a/docs/USER_GUIDE.md +++ b/docs/USER_GUIDE.md @@ -2,8 +2,8 @@ Приложение «Вечерний детектив» хранит подготовленные материалы на компьютере и показывает их на проекторе. Пульт работает на основном экране компьютера. -Телефон отправляет команды через существующий сервер сайта; без сети -управляйте показом с компьютера. +Приложение получает обновления через существующий сервер сайта; без сети +управляйте показом локально. Руководство описывает текущие исходники и пересобранный Linux x64 0.2.0-rc.1. Остальные архивы ещё содержат прежние подписи режимов и кнопки подключения @@ -97,7 +97,7 @@ Windows 11, macOS 13+, Ubuntu 24.04 LTS или Debian 13. Эти требова нажмите «Удалить план», затем «Сохранить план». При ошибке сохранения черновик остаётся в редакторе. Изменения черновика и сохранение сами не меняют проектор. -План общий с сайтом и телефоном. При параллельных правках последнее сохранение +План общий с сайтом. При параллельных правках последнее сохранение заменяет его целиком. Во время редактирования фоновое обновление не меняет черновик. Сохранение требует сети; локально хранится последняя подтверждённая копия отдельно от материалов игры. @@ -146,14 +146,14 @@ Windows 11, macOS 13+, Ubuntu 24.04 LTS или Debian 13. Эти требова «Закрыть показ» останавливает медиа, но **обычное закрытие не ставит таймер на паузу**. При необходимости сначала нажмите «Пауза таймера». При смене пакета таймер сбрасывается. -## Управление с телефона +## Связь с сервером 1. Войдите и выберите готовую игру в «Материалы показа». 2. Проверьте строку «Игра для управления»: это название локально выбранного пакета, независимо от игры в списке загрузки выше. Нажмите «Подключить управление этой игрой»; запишите показанный номер экрана. Откройте показ и дождитесь «Связь с сервером есть». -3. На телефоне откройте существующую страницу управления этой игрой на сайте. +3. Откройте существующую страницу управления этой игрой на сайте. При необходимости назначьте звук экрану через сайт или кнопку «Назначить звук этому экрану». Это отключает звук других экранов игры по существующим правилам сервера. Статус назначения звука показывается отдельно @@ -165,19 +165,18 @@ Windows 11, macOS 13+, Ubuntu 24.04 LTS или Debian 13. Эти требова Опрос сервера идёт раз в секунду при открытом показе. Быстрые команды между опросами могут объединяться. Локальные команды компьютера действуют только -на его показ и не рассылаются другим экранам. Новая команда телефона может +на его показ и не рассылаются другим экранам. Новая команда сервера может изменить локальный показ. «Отключить управление» прекращает управление приложением, но сохраняет привязку экрана на сервере. Для отвязки используйте сайт. -При отсутствии интернета пользуйтесь локальным пультом; прямого подключения -телефона к приложению по LAN нет. +При отсутствии интернета пользуйтесь локальным пультом. ## Сбои и восстановление | Ситуация | Действия ведущего | | --- | --- | -| Нет сети | Продолжайте локально. После возврата сети дождитесь связи и отправьте новую команду с телефона. | +| Нет сети | Продолжайте локально. После возврата сети дождитесь связи и отправьте новую команду через сайт. | | Проектор отключился, изменилось разрешение или произошёл сон | Прочитайте причину в пульте, восстановите дисплей/выход звука, выберите внешний экран и явно откройте показ. Медиа остановлены, работающий таймер сохранён на паузе. | -| Нет звука | Проверьте выход и mute ОС, кабель/USB/HDMI, «Выключить весь звук», громкость канала, открытое окно и статус проигрывателя. Для команд телефона проверьте назначение звука экрану. | +| Нет звука | Проверьте выход и mute ОС, кабель/USB/HDMI, «Выключить весь звук», громкость канала, открытое окно и статус проигрывателя. Для серверных команд проверьте назначение звука экрану. | | Ошибка подготовки сцены | Проверьте сообщение и нажмите «Повторить подготовку». При повторении проверьте пакет до продолжения игры. | | Пакет повреждён или отсутствует файл | При доступной сети закройте показ и загрузите материалы заново. Для удаления выберите другой пакет или тестовый режим, затем «Удалить материалы» у нужной игры. Без сети восстановить отсутствующие байты нельзя. | | Истёк вход или сессия экрана | Повторно войдите или подключите управление по сообщению пульта. Готовые материалы остаются на диске. |