Что такое Prism
Prism — домашняя медиасистема из нескольких самостоятельных частей, связанных только двумя контрактами: HTTP API и MQTT. Каждая часть работает без остальных, поэтому набор можно собирать под свой сценарий.
Роли
| Роль | Кто исполняет | Отвечает за |
|---|---|---|
| Источник | Prism.Host (служба Windows или консольный запуск) | сканирование папок, библиотеку, метаданные, стриминг |
| Рендерер | Prism.Player.Android (Android TV), веб-клиент | показывает видео по присланному URL |
| Контроллер | веб-клиент, Prism.Launcher | просмотр библиотеки и выбор, что и где включить |
| Координатор | умный дом (ThinkingHome и др.) | автоматизация: находит плееры по MQTT и шлёт им команды |
Сервер не содержит интерфейса — весь UI живёт в клиентах. Плеер не знает про библиотеку — ему приходит абсолютный URL потока. Благодаря этому источников контента может быть несколько, а плееров — сколько угодно.
Из чего состоит
- Prism.Host — ASP.NET Core, только API. Запускается как служба Windows (
Prism.Host.Service, ставится инсталлятором) или из консоли для разработки (Prism.Host.Console). - Prism.Client — веб-интерфейс на React + Vite: дерево библиотеки и плеер. Единственная настройка — URL сервера.
- Prism.Player.Android — нативный плеер для Android TV на Media3/ExoPlayer, управляется пультом и по MQTT.
- Prism.Launcher — значок в трее Windows: отправляет файл из проводника на выбранный плеер.
- Плагины (
Prism.Plugins.*) — опциональные модули сервера. Структура библиотеки и метаданные реализованы плагиномPrism.Plugins.Library; без него ядро продолжает раздавать файлы.
Дальше
- Быстрый старт — собрать и запустить у себя.
- HTTP API хоста — что отдаёт сервер.
- MQTT-контракт плеера — как управлять плеером снаружи.