Files

139 lines
9.2 KiB
Markdown

# ViewMate — сценарии использования телефонного интерфейса
Описание по эскизам `sketches/phone-ui/index.html`. Дизайн — эскизный (раскладка компонентов), но сценарии — рабочие.
---
## Сценарий 1: «Посмотреть фильм» (главный путь)
### Шаг 1 — Открыл приложение → Экран «Каталог»
Вижу: поиск (вверху), вкладки **Фильмы / Сериалы / Папки**, ниже — сетка карточек.
Каждая карточка — элемент библиотеки Jellyfin: постер + название + **бейдж статуса зеркала**:
| Бейдж | Значение |
|-------|----------|
| ✓ (зелёный) | зеркало **готово** — можно смотреть сразу |
| ⟳ 45% (жёлтый) | **конвертируется** прямо сейчас (воркер молотит) |
| «нет» (серый) | **не сконвертировано** — надо заказать |
| ↓ часть (синий) | **частично скачано** на устройство (видео есть, звук качается) |
> **Вкладка «Папки»** — это вход в иерархию Jellyfin: коллекции, папки, подпапки. «Фильмы» и «Сериалы» — удобные фильтры-ярлыки поверх неё.
### Шаг 2 — Тапнул по карточке → Экран «Детали фильма»
Открылся экран: постер, название, метаданные (год, жанр, длительность).
Ниже — **три блока:**
**Блок «Выбор озвучки»** — список аудиодорожек из зеркала (title + language), радио-выбор:
```
◉ Дубляж (Reanimedia) rus
○ Оригинал eng
○ Профессиональный многоголосый rus
```
Выбор запоминается — это дорожка, которая заиграет при старте.
**Блок «Статус конвертации»** — если зеркала нет или оно готовится:
```
Конвертация зеркала ⟳ 45%
[██████████░░░░░░░░░░░░]
```
- «нет» в каталоге → здесь будет кнопка/статус «конвертировать» (заказ через media-mirror)
- идёт → прогресс, обновляется
- готово → блок исчезает или пишет «✓ готово»
**Блок «Скачивание на устройства»** — что и где лежит (видео и звук отдельно!):
```
🕶️ Очки — видео ✓ скачано
🕶️ Очки — звук ↓ качается…
📱 Телефон — видео нет
📱 Телефон — звук ✓ скачано
```
Это и есть ответ на «частично скачано»: **видео и звук — два независимых файла** (видео.mkv на очках, звук.ogg на телефоне). Каждый может быть в своём состоянии.
Под блоком — **кнопка «Удалить скачанное (очки + телефон)»** — освободить память обоих устройств разом.
### Шаг 3 — Нажал «▶ Смотреть на очках»
**Если зеркало готово и скачано/скачается:** очки переходят в режим КИНО, видео играет на очках, выбранная озвучка — на телефоне (синхронизация по позиции).
**Если зеркало ещё не сконвертировано:** кнопка показывает реальное состояние:
- «Конвертировать» (если «нет») → заказ в media-mirror → кнопка становится «⟳ 45%» (прогресс)
- когда done — кнопка становится «▶ Смотреть» и можно играть
### Шаг 4 — Управление воспроизведением
- с телефона: экран «Статус очков» → пульт (перемотка ±30с, плей/пауза)
- с очков: жест-клик — пауза/плей, свайп ← → — перемотка
---
## Сценарий 2: «Проверить очки и память»
Экран «Статус очков» (вкладка 🕶️ внизу):
```
🕶️ Связь с очками подключено (WiFi) ● (зелёный)
🔋 Батарея очков 68% [████████░░]
💾 Память очков 41,2 ГБ из 128 ГБ [█████░░░░░]
🎬 Сейчас на очках Дюна 2 · 12:34/56:00 (пауза)
```
- **память очков** — сколько всего и сколько занято (то, что вы просили)
- **«Сейчас на очках»** — живое состояние: какой фильм, позиция, играет/пауза
- кнопка **«Скачанное на очках →»** — список файлов на очках, оттуда можно удалять (управление памятью очков)
Ниже — **пульт**: перемотка, плей/пауза, **переключение режима очков** (Кино ⇄ Чат).
---
## Сценарий 3: «Поговорить с Порфирием»
Экран «Чат» (вкладка 💬):
1. **Лента разговора** — сообщения туда-сюда
2. **Индикаторы состояния**:
- «Порфирий думает…» (три точки) — когда я соображаю
- «● слушаю… 0:07» (красная точка + таймер) — когда вы диктуете
3. **Список сессий** — внизу: «Очки/кино», «Работа», «Общее». Тапнул — переключился на другую сессию (параллельная работа с ассистентом)
4. **🎙** — запись голоса
То же самое доступно с очков: режим ЧАТ, клик — начать/закончить диктовку, двойной клик — отмена/локальный агент, свайп — скролл текста ответа.
---
## Сценарий 4: «Фильм не сконвертирован — что я увижу?»
1. В каталоге карточка с бейджем **«нет»** (серый)
2. Тапнул → в деталях блок конвертации: «Конвертировать»
3. Тапнул «Конвертировать» → бейдж в каталоге становится **⟳ x%** (жёлтый), в деталях — прогресс-бар
4. Пока конвертится — «Смотреть» недоступна (или показывает «идёт конвертация»)
5. Готово → бейдж **✓**, кнопка «▶ Смотреть»
---
## Сценарий 5: «Скачал, но не до конца» (частично)
Ситуация: телефон скачал видео, а звук ещё качается (или наоборот).
- В каталоге — бейдж **↓ часть** (синий)
- В деталях — блок скачивания показывает покомпонентно:
```
🕶️ Очки — видео ✓ (есть)
🕶️ Очки — звук ↓ качается…
```
- Кнопка «Смотреть» работает, если **видео на очках готово** — звук докачается в фоне, синхронизация догонит
- «Удалить скачанное» — очищает и очки, и телефон
---
## Принципы (кратко)
1. **Каталог — только телефон.** Очки не листают библиотеку — они «экран кинотеатра», ждут команду «включи».
2. **Видео и звук — разные файлы** (видео.mkv на очках, звук.ogg на телефоне), поэтому состояния у них свои — отсюда «частично скачано».
3. **Всё начинается с вопроса «есть ли зеркало?»** — бейдж в каталоге показывает ответ ещё до входа в карточку.
4. **Один локальный агент** — телефон и очки два рендера одного состояния: что видно на экране «Статус очков», то и на очках.
5. **Сессии** — параллельная работа с ассистентом: переключил сессию — разговор продолжается в другом контексте.