Mediadisplay 2: Описание API
- Вводная часть
- Описание JSON API Медиадисплей сервер
- Работа API для POS
- POST Ввод данных
- POST Ввод данных в определенный блок
- POST Очистка данных
- POST Ввод данных для двустрочной темы
- Файловые операции
- POST Загрузка контента на сервер
- POST Загрузка контента из Url
- POST Проверка на существование файла
- GET Получение файла с сервера
- Установка контента
- POST Установка изображения
- POST Установка видео
- POST Установка списка воспроизведения (изображения и видео)
- Полноэкранный режим
- Лицензия
- GET Получение статуса лицензии
- GET Запрос на получение информации о лицензии
- POST Активация лицензии
- POST Открепление лицензии
- POST Регистрация компании
- GET Получить путь до каталога с лицензией
- GET Получить данные компании
- Темы
- POST Получение темы
- POST Добавить тему
- POST Применить тему
- GET Получить все темы
- GET Получить имена всех тем
- GET Получить тему плеера
- Плееры
- Сервер


Вводная часть
Цель
Целью данного раздела является описание взаимодействия с системой Медиадисплей и инициатором JSON запросов (далее источник данных)
В данном документе будут рассмотрены:
- Алгоритм работы системы Медиадисплей
- Описание веб запросов JSON
Алгоритм работы системы Медиадисплей
В данной части будут описаны алгоритм работы системы Медиадисплей и общие принципы взаимодействия между Медиадисплей сервер и источником данных.
Система Медиадисплей состоит из нескольких частей:
- Медиадисплей сервер (МД Сервер или Сервер)
- Медиадисплей плеер (МД Плеер или Плеер)
- Панель управления (МД Админ)
- Источник данных
МД сервер, МД Плеер и МД Админ должны находится на одном ПК или одной локальной сети.
К Серверу подключаются Плееры и получают от него данные для отображения такие как текст, изображения и видео. Сервер резервирует каталог C:/RB-Soft/ для хранения данных
На Сервере хранятся:
- Файлы изображений и видео
- Данные о подключенных Плеерах
- Списки воспроизведения
- Темы для Плееров и их ресурсы
Организация директорий на Сервере
На сервере создается директория с названием RB-Soft
Имеет следующую структуру вложений:
- MediaDisplay – служит для хранения ресурсов для тем Плеера
- MediaDisplay Server
– служит для хранения данных сервера
- Covers – служит для хранения тем в формате JSON
Организация директорий на Плеере
Плеер создает каталог C:/Users/{пользователь}/AppData/LocalLow/RBSoft/MediaDisplay/ в котором хранятся конфигурации Плеера (Configuration.json) и логи (output_log.txt).
Темы представляют собой описание JSON хранится на Сервере в каталоге C:/RB-Soft/Mediadisplay Server/Covers/, состоящее из блоков как на рисунке 2. Структура темы описана в документации «JSON структура темы Медиадисплея»

Взаимодействие происходит при помощи GET и POST запросов в формате JSON.
Источником данных могут быть:
- 1С рабочее место кассира
- Postman (https://www.getpostman.com/)
- Любое ПО способное отправлять GET и POST запросы
Структура данных
Имеется четыре структуры:
POS – для источника данных с торговой точки имеет список блоков и не заполненные блоки очищаются при каждом запросе.
Список блоков:
- Receivers — список получателей
- Containers — контейнер данных
- Name — имя блока
- Table — описание таблицы
- ColumnNames — наименования столбцов
- Rows — список описания строк таблицы состоит из списка строк
- Styles — описание стиля (для выделения активной строки)
- RowNumber — номер строки (счет с нуля)
- Name — имя стиля строки
- Text — текстовая строка
MediaServer – предназначен для взаимодействия Плеера и Сервера
MediaController – предназначен для управления Сервером. Имеется доступ ко всем блокам и при отправке данный не перетирает данные
FileManager – для доступа к файлам на сервере
Описание JSON API Медиадисплей сервер
Работа API для POS
Интерфейс управления с торговой точки, он же источник данных
URL имеют вид: {Сервер}/{Структура данных}/{версия API}/{Команда}
Сервер — http://127.0.0.1:8009 или http://localhost:8009 Указывается адрес сервера
Структура данных — POS (Point of Sale) задает список доступных блоков для редактирования.
- TwoString — двустрочная строка
- Header — заголовок
- Table — таблица
- Total — итого
- Discount — скидка
- TotalPayment — к оплате
- Paid — оплачено
- Change — сдача
Актуальная версия API 1.0
POST Ввод данных
http://localhost:8009/POS/1.0/Set
Запрос ввода данных в таблицу
Описание тела запроса:
- Receivers — список получателей
- Containers — контейнер данных
- Name — имя блока
- Table — описание таблицы
- ColumnNames — наименования столбцов
- Rows — список описания строк таблицы состоит из списка строк
- Styles — описание стиля (для выделения активной строки)
- RowNumber — номер строки (счет с нуля)
- Name — имя стиля строки
- Text — текстовая строка
Описание тела ответа:
- Code — код результата операции
- Description — описание результата операции
HEADERS
Structure | POS |
Content-Type | application/json |
BODY
{ "Receivers": [ "Display1" ], "Containers": [ { "Name": "Table", "Table": { "ColumnNames": [ "Id", "Name", "Price", "Count", "Sum", "Image" ], "Rows": [ [ "1", "Толстовка из хлопка на молнии", "10 900,00", "1", "10 900,00" ], [ "2", "Куртка из кожи", "65 900,00", "1", "65 900,00" ] ], "Styles": [ { "RowNumber": 1, "Name": "ActiveRow" } ] } }, { "Name": "Header", "Text": "Добро пожаловать" }, { "Name": "Total", "Text": "76 800,00" }, { "Name": "TotalPayment", "Text": "76 800,00" }, { "Name": "Change", "Text": "0,00" }, { "Name": "Discount", "Text": "0,00" }, { "Name": "Paid", "Text": "76 800,00" } ] }
RESPONSE
{ "Code": 0, "Description": "Операция успешно выполнена" }
POST Ввод данных в определенный блок
http://localhost:8009/POS/1.0/Set
Описание запроса ввода данных в блок заголовка
Описание тела запроса:
- Receivers — список получателей
- Containers — контейнер данных
- Name — имя блока
- Text — текстовая строка
Описание тела ответа:
- Code — код результата операции
- Description — описание результата операции
Так как запрос идет с использованием структуры данных POS остальные блоки будут очищены
HEADERS
Structure | POS |
Content-Type | application/json |
BODY
{ "Receivers": [ "Display1" ], "Containers": [ { "Name": "Header", "Text": "Добро пожаловать" } ] }
RESPONSE
{ "Code": 0, "Description": "Операция успешно выполнена" }
POST Очистка данных
http://localhost:8009/POS/1.0/Clear
Команда очистки данных структуры данных POS
Описание тела запроса:
- Receivers — список плееров
Описание тела ответа:
- Code — код результата операции
- Description — описание результата операции
HEADERS
Structure | POS |
Content-Type | application/json |
BODY
{ "Receivers": [ "Display1" ] }
RESPONSE
{ "Code": 0, "DaysLeft": 4, "Description": "Операция успешно выполнена", "FirstStartDate": -8586479253950674000, "Status": 1 }
POST Ввод данных для двустрочной темы
http://localhost:8009/POS/1.0/Set
Ввод данных для двустрочной темы
Описание тела запроса:
- Receivers — список плееров
- Containers — контейнер данных
- Name — имя блока
- Text — текстовая строка (спецсимвол \n для переноса строки)
Описание тела ответа:
- Code — код результата операции
Description — описание результата операции
HEADERS
Structure | POS |
Content-Type | application/json |
BODY
{ "Receivers": [ "Display1" ], "Containers": [ { "Name": "TwoString", "Text": "Джинсы\n5 000,00 * 1 = 5 000,00" } ] }
RESPONSE
{ "Code": 0 }
Файловые операции
Описание API для работы с файлами изображений и видео. Контент загружается на сервер в зарезервированный каталог «C:\RB-Soft». Для обращения к каталогу через API используется тег {RB_SOFT}
POST Загрузка контента на сервер
http://localhost:8009/FileManager/1.0/UploadFromStream
Команда для загрузки контента на сервер. В тело запроса необходимо отправить байтовый поток файла
Заголовки запроса:
- Name — имя файла(с форматом .jpg .png .mp4)
- DestinationPath — имя каталога
Описание тела запроса:
- помещается поток binary
Описание тела ответа:
- Code — код результата операции
- Description — описание результата операции
- Path — путь по которому он записан на сервере
HEADERS
Name | Image.jpg |
DestinationPath | SlideShow |
RESPONSE
{ "Code": 0, "Description": "Операция успешно выполнена", "Path": "{RB_SOFT}\\SlideShow\\Image.jpg" }
POST Загрузка контента из Url
http://localhost:8009/FileManager/1.0/Upload
Команда загрузки контента из Url
Описание тела запроса:
- Path — путь до файла
- Name — путь и имя сохранения (формат файла устанавливается от формата файла в Url)
Описание тела ответа:
- Code — код результата операции
- Description — описание результата операции
- Path — путь по которому он записан на сервере
HEADERS
Content-Type | application/json |
BODY
{ "Path": "http://techslides.com/demos/sample-videos/small.mp4", "Name": "PlayList\\Video" }
RESPONSE
{ "Code": 0, "Description": "Операция успешно выполнена", "Path": "{RB_SOFT}\\PlayList\\Video.mp4" }
POST Проверка на существование файла
localhost:8009/FileManager/1.0/Exists
Команда для проверки существует ли файл на сервере
Описание тела запроса:
- Путь относительно сервера с тегом {RB_SOFT}
Описание тела ответа:
- true или false в зависимости присутствует ли файл на сервере
HEADERS
Content-Type | application/json |
BODY
"{RB_SOFT}/SlideShow/Image.jpg"
RESPONSE
true
GET Получение файла с сервера
http://localhost:8009/FileManager/1.0/Download?path={RB_SOFT}/SlideShow/Image.jpg
Команда для получения файла с сервера
Описание параметра:
- path — путь на сервере
PARAMS
path | {RB_SOFT}/SlideShow/Image.jpg |
Установка контента
Команды для установки контента в выбранный блок
POST Установка изображения
http://localhost:8009/MediaController/1.0/Set
Описание тела запроса:
- Receivers — список получателей
- Containers — контейнер данных
- Name — имя блока
- Pictures — описание таблицы
- Url — путь до файла
Описание тела ответа:
- Code — код результата операции
- Description — описание результата операции
HEADERS
Content-Type | application/json |
BODY
{ "Receivers": [ "Display1" ], "Containers": [ { "Name": "Background", "Pictures": [ { "Url": "{RB_SOFT}\\Image.jpg" } ] } ] }
POST Установка видео
http://localhost:8009/MediaController/1.0/Set
Добавление видео в полноэкранному блоку
Описание тела запроса:
- Receivers — список получателей
- Containers — контейнер данных
- Name — имя блока
- Videos — описание таблицы
- Url — путь до файла
Описание тела ответа:
- Code — код результата операции
- Description — описание результата операции
HEADERS
Content-Type | application/json |
BODY
{ "Receivers": [ "Display1" ], "Containers": [ { "Name": "FullScreenVideo", "Videos": [ { "Url": "{RB_SOFT}\\Video.mp4" } ] } ] }
POST Установка списка воспроизведения (изображения и видео)
http://localhost:8009/MediaController/1.0/Set
Установка списка воспроизведения для блока Combined
Описание тела запроса:
- Receivers — список получателей
- Containers — контейнер данных
- Name — имя блока
- Contents — описание таблицы
- Url — путь до файла
Описание тела ответа:
- Code — код результата операции
- Description — описание результата операции
HEADERS
Content-Type | application/json |
BODY
{ "Receivers": [ "Display1" ], "Containers": [ { "Name": "Combined", "Contents": [ { "Url": "{RB_SOFT}\\Video (1).mp4" }, { "Url": "{RB_SOFT}\\Video (2).mp4" }, { "Url": "{RB_SOFT}\\Image (1).jpg" }, { "Url": "{RB_SOFT}\\Image (2).jpg" } ] } ] }
Полноэкранный режим
Команды для отображения контента в полноэкранном режиме Алгоритм работы: загрузка контента на сервер
POST Установка параметров полноэкранного режима
http://localhost:8009/MediaController/1.0/SetFullScreen
Установка параметров для полноэкранного режима
Описание тела запроса:
- Display — имя плеера
- Block — имя блока
- Forced — принудительно установить на весь экран
- TimeOut — время через которое установится полноэкранный режим
- Duration — длительность
Описание тела ответа:
- SetFullScreenResult — ответ
- Code — код ответа
- Description — описание результата запроса
HEADERS
Content-Type | application/json |
BODY
{ "Display": "Display1", "Block": "SlideShow", "Forced": false, "TimeOut": 20, "Duration": 20 }
RESPONSE
{ "SetFullScreenResult": { "Code": 0, "Description": "Операция успешно выполнена", "Status": 1 } }
POST Отключение полноэкранного режима
http://localhost:8009/MediaController/1.0/DisableFullScreen
Команда для отключения полноэкранного режима
Описание тела запроса:
- Display — имя плеера
Описание тела ответа:
- SetFullScreenResult — ответ
- Code — код ответа
- Description — описание результата запроса
HEADERS
Content-Type | application/json |
BODY
{ "Display": "Display1" }
RESPONSE
{ "DisableFullScreenResult": { "Code": 0, "DaysLeft": 3, "Description": "Операция успешно выполнена", "FirstStartDate": -8586479253950674000, "Status": 1 } }
Лицензия
Интерфейс управления лицензией
GET Получение статуса лицензии
http://localhost:8009/MediaController/1.0/GetLicenseStatus
Команда для получения статуса лицензии
Описание тела запроса:
- Cod — код результата запроса
- DaysLeft — осталось дней
- Description — описание результата запроса
- FirstStartDate — дата первого запуска
- Status — статус лицензии
- ExpirationDay — дата истечения лицензии
- Permissions — разрешено подключений
RESPONSE
{ "Code": 0, "DaysLeft": 0, "Description": null, "FirstStartDate": 0, "Status": 1, "ExpirationDay": "/Date(1732809600000)/", "Permissions": 15, "Serial": null, "State": 1 }
GET Запрос на получение информации о лицензии
http://localhost:8009/MediaController/1.0/GetFullLicense
Получение полного списка лицензии
Описание тела запроса:
- Code — код результата запроса
- DaysLeft — дней прошло
- Description — описание результата запроса
- FirstStartDate — дата запуска сервера
- Status — статус лицензии
- Licenses — список лицензий
Описание лицензии (Licenses)
- CompanyId — идентификатор компании
- CompanyName — имя компании
- ErrorDescription — описание ошибки
- Expire — дата истечения лицензии
- LicenseType — тип лицензии
- Permissions — количество подключений
- ProductType — тип продукта
- Serial — серийный номер лицензии
- Status — статус лицензии
RESPONSE
{ "Code": 0, "Description": null, "Licenses": [ { "CompanyId": null, "CompanyName": null, "ErrorDescription": "", "Expire": "/Date(1732809600000)/", "LicenseType": 2, "Permissions": 15, "ProductType": 2, "Serial": "00000000", "Status": 1 } ] }
POST Активация лицензии
http://localhost:8009/MediaController/1.0/ActivateLicense
Команда активации лицензионного ключа
- Serial — серийный номер
- Pin — пин-код
- Email — электронная почта
- Password — пароль
HEADERS
Content-Type | application/json |
BODY
{ "Serial": "00000000", "Pin": "0000", "Email": "MyMail@mail.ru", "Password": "password" }
RESPONSE
{ "Code": 0, "Description": "Активация прошла успешно" }
POST Открепление лицензии
http://localhost:8009/MediaController/1.0/DetachmentLicense
Команда открепления лицензии.
Описание тела запроса:
- Serial — серийный номер
- Pin — пин-код
- Email — электронная почта
- Password — пароль
HEADERS
Content-Type | application/json |
BODY
{ "Serial": "00000000", "Pin": "0000", "Email": "MyMail@mail.ru", "Password": "password" }
POST Регистрация компании
http://localhost:8009/MediaController/1.0/RegisterCompany
Команда для регистрации компании.
Описание тела запроса:
- Serial — серийный номер
- Pincode — пин-код
- CompanyEmail — электронная почта компании
- CompanyPhone — номер телефона компании
- CompanyVatin — ИНН компании
- FirstName — имя ответственного лица
- LastName — фамилия ответственного лица
- Patronymic — отчество ответственного лица
- UserEmail — электронная почта ответственного лица
- UserPassword — пароль
- UserPhone — номер телефона ответственного лица
- UserName — имя пользователя
HEADERS
Content-Type | application/json |
BODY
{ "Serial": "00000000", "Pincode": "0000", "CompanyEmail": "MyMail@mail.ru", "CompanyPhone": "89999999999", "CompanyVatin": "0000000000", "FirstName": "John", "LastName": "Doe", "Patronymic": "Smith", "UserEmail": "MyMail@mail.ru", "UserPassword": "Password", "UserPhone": "89999999999", "UserName": "JohnDoe" }
RESPONSE
{ "Code": 0, "Description": "Активация прошла успешно" }
GET Получить путь до каталога с лицензией
http://localhost:8009/MediaController/1.0/GetLicenceDirectory
Команда для получения полного пути до каталога с информацией о лицензии
RESPONSE
"C:\\RB-Soft\\MediaDisplay Server\\RbSoft"
GET Получить данные компании
http://localhost:8009/MediaController/1.0/GetCompanies
Команда на получение данных компании
[ { "Id": "00000000-0000-0000-0000-000000000000", "Name": "ООО \"РБ-СОФТ\"" } ]
Темы
POST Получение темы
http://localhost:8009/MediaController/1.0/GetCover
Команда для получения полного описания темы в JSON
Описание тела запроса:
- Название темы
Описание тела ответа:
- JSON описание темы
HEADERS
Content-Type | application/json |
BODY
"Default"
POST Добавить тему
http://localhost:8009/MediaController/1.0/AddCover
Команда для добавления темы с полным описанием JSON
Описание тела запроса:
- JSON описание темы
Описание тела запроса:
- Code — код результата запроса
- Description — описание результата запроса
HEADERS
{ "Name": "Theme", "Data": [ { "Name": "Combined", "Type": 3 }, { "Name": "PlayList", "Type": 2 } ], "Blocks": [ { "Name": "Combined", "X": 0.0, "Y": 0.0, "W": 1.0, "H": 0.5, "Layer": 1 }, { "Name": "PlayList", "X": 0.0, "Y": 0.5, "W": 1.0, "H": 0.5, "Layer": 10 } ], "Designs": [ { "Name": "Combined", "Type": 2 }, { "Name": "PlayList", "Type": 2 } ], "Styles": [ { "Name": "Combined", "Color": "#FFFFFFFF" }, { "Name": "PlayList", "Color": "#FFFFFFFF" } ], "Contents": [ { "Name": "Combined", "Catalog": [ { "CheckSum": "a632aa893f7517542f3ec554665693b6", "Item": "{RB_SOFT}\\MediaDisplay Server\\Covers\\Theme\\Video (2).mp4" }, { "CheckSum": "f9f51424f6499c16ca671de564ee3afe", "Item": "{RB_SOFT}\\MediaDisplay Server\\Covers\\Theme\\Video (1).mp4" } ] }, { "Name": "PlayList", "Catalog": [ { "CheckSum": "f9f51424f6499c16ca671de564ee3afe", "Item": "{RB_SOFT}\\MediaDisplay Server\\Covers\\Theme\\Video (1).mp4" }, { "CheckSum": "a632aa893f7517542f3ec554665693b6", "Item": "{RB_SOFT}\\MediaDisplay Server\\Covers\\Theme\\Video (2).mp4" } ] } ], "Configuration": { "Name": "Theme", "Version": "V2", "Author": "RB-Soft", "Description": "Theme", "RecommendedAspectRatio": "16:9", "Structure": "POS", "PreviewPath": [ "{RB_SOFT}\\MediaDisplay Server\\Covers\\Theme\\Preview\\Theme (1).png", "{RB_SOFT}\\MediaDisplay Server\\Covers\\Theme\\Preview\\Theme (2).png" ], "IsCustom": true } }
POST Применить тему
http://localhost:8009/MediaController/1.0/SetCover
Команда для применения темы определенному плееру
Описание тела запроса:
- Name — имя плеера
- Cover — имя темы
Описание тела запроса:
- Code — код результата запроса
- Description — описание результата запроса
HEADERS
Content-Type | application/json |
BODY
{ "Name":"Display1", "Cover":"Default" }
RESPONSE
{ "Code": 0, "DaysLeft": 3, "Description": "Операция успешно выполнена", "FirstStartDate": -8586479253950674000, "Status": 1 }
GET Получить все темы
http://localhost:8009/MediaController/1.0/GetAllCoverInfo
Команда для получения всех установленных тем
Описание тела ответа:
- Author — автор темы
- Description — описание темы
- IsCustom — редактируемая тема
- Name — имя темы
- PreviewPath — список путей до файла пред просмотра
- RecommendedAspectRatio — рекомендованное соотношение сторон экрана
- Structure — структура данных
- Title — заголовок темы
- Version — версия API сервера
RESPONSE
[ { "Author": "RB-Soft", "Description": "Тема не требовательна к ресурсам. Поддерживаемые области контента: SlideShow", "IsCustom": false, "Name": "Default", "PreviewPath": [ "{RB_SOFT}\\MediaDisplay Server\\Covers\\Default\\preview\\Default1.png", "{RB_SOFT}\\MediaDisplay Server\\Covers\\Default\\preview\\Default2.png" ], "RecommendedAspectRatio": null, "Structure": "POS", "Title": "Стандартная тема", "Version": "V2" }, { "Author": "RB-Soft", "Description": "Тема требовательна к устройству. Поддерживаемые области контента: Combined", "IsCustom": false, "Name": "City", "PreviewPath": [ "{RB_SOFT}\\MediaDisplay Server\\Covers\\City\\preview\\City2.PNG", "{RB_SOFT}\\MediaDisplay Server\\Covers\\City\\preview\\City1.PNG" ], "RecommendedAspectRatio": "16:9", "Structure": "POS", "Title": "Город", "Version": "V2" }, { "Author": "RB-Soft", "Description": "Simple: таблица из 2 столбцов и 5 строк. Поддерживаемые области контента: SlideShow, PlayList", "IsCustom": false, "Name": "Simple", "PreviewPath": [ "{RB_SOFT}\\MediaDisplay Server\\Covers\\Simple\\preview\\Simple2.PNG", "{RB_SOFT}\\MediaDisplay Server\\Covers\\Simple\\preview\\Simple1.PNG" ], "RecommendedAspectRatio": "16:9", "Structure": "POS", "Title": "Классическая", "Version": "V2" }, { "Author": "RB-Soft", "Description": "Двухстрочная тема. Поддерживаемые области контента: Combined. Содержит: размытие, свечение, бегущая строка", "IsCustom": false, "Name": "TwoStringAdvanced", "PreviewPath": [ "{RB_SOFT}\\MediaDisplay Server\\Covers\\TwoStringAdvanced\\Preview\\Preview (1).png", "{RB_SOFT}\\MediaDisplay Server\\Covers\\TwoStringAdvanced\\Preview\\Preview (2).png" ], "RecommendedAspectRatio": "16:9", "Structure": "POS", "Title": "Двухстрочная тема: Продвинутая", "Version": "V2" } ]
GET Получить имена всех тем
http://localhost:8009/MediaController/1.0/GetCovers
Команда для получения имен всех установленных тем
Описание тела ответа:
- Список имен тем
RESPONSE
[ "Default", "Board", "City", "CitySimple", "CityVertical", "DefaultCombined", "Flowers", "Simple", "Space", "Morison", "TwoString", "TwoStringAdvanced" ]
GET Получить тему плеера
http://localhost:8009/MediaController/1.0/GetClientCover?Name=Display1
Команда для получения JSON описания темы установленного на плеер
Описание параметра:
- Name — имя плеера
Описание тела ответа:
- JSON структура темы
PARAMS
Name | Display1 |
RESPONSE
{ "Address": "Ленина, 1", "Cover": { "Blocks": [ { "H": 1, "Layer": 1, "Name": "Combined", "W": 0.5, "X": 0, "Y": 0 }, { "H": 1, "Layer": 10, "Name": "PlayList", "W": 0.5, "X": 0.5, "Y": 0 } ], "Configuration": { "Author": "RB-Soft", "Description": "SplitScreenVertical", "Name": "SplitScreenVertical", "PreviewPath": [ "{RB_SOFT}\\MediaDisplay Server\\Covers\\SplitScreenVertical\\Preview\\SplitScreenVertical (1).png", "{RB_SOFT}\\MediaDisplay Server\\Covers\\SplitScreenVertical\\Preview\\SplitScreenVertical (2).png" ], "RecommendedAspectRatio": "16:9", "Structure": "POS", "Version": "V2" }, "Contents": [ { "Catalog": [ { "CheckSum": "a632aa893f7517542f3ec554665693b6", "Item": "{RB_SOFT}\\MediaDisplay Server\\Covers\\SplitScreenVertical\\Video (2).mp4" }, { "CheckSum": "f9f51424f6499c16ca671de564ee3afe", "Item": "{RB_SOFT}\\MediaDisplay Server\\Covers\\SplitScreenVertical\\Video (1).mp4" } ], "Name": "Combined" }, { "Catalog": [ { "CheckSum": "f9f51424f6499c16ca671de564ee3afe", "Item": "{RB_SOFT}\\MediaDisplay Server\\Covers\\SplitScreenVertical\\Video (1).mp4" }, { "CheckSum": "a632aa893f7517542f3ec554665693b6", "Item": "{RB_SOFT}\\MediaDisplay Server\\Covers\\SplitScreenVertical\\Video (2).mp4" } ], "Name": "PlayList" } ], "Data": [ { "Name": "Combined", "Type": 3 }, { "Name": "PlayList", "Type": 2 } ], "Designs": [ { "Name": "Combined", "Parameters": {}, "Type": 2 }, { "Name": "PlayList", "Parameters": {}, "Type": 2 } ], "Name": "SplitScreenVertical", "Styles": [ { "BottomLineSize": 0, "Color": "#FFFFFFFF", "Name": "Combined" }, { "Color": "#FFFFFFFF", "Name": "PlayList" } ] }, "Id": "d9aacfd7-8a22-4e3f-8a54-35cc53abf8fc", "LastActivityTime": "/Date(1556001000634+0800)/", "Name": "Display1" }
Плееры
Описание API для управления подключенными плеерами
GET Получить список подключенных плееров
http://localhost:8009/MediaController/1.0/GetClients
Команда для получения списка всех подключенных плееров
Описание тела ответа:
- Address — адрес расположения указанный при регистрации
- CoverName — имя темы
- Id — идентификатор
- LastActivityTime — время последней активности
- Name – имя
RESPONSE
[ { "Address": "Зал 1", "CoverName": "SplitScreenVertical", "Id": "d9aacfd7-8a22-4e3f-8a54-35cc53abf8fc", "LastActivityTime": "/Date(1556001000634+0800)/", "Name": "Display1" }, { "Address": "Зал 2", "CoverName": "TwoString", "Id": "92a42450-8ba8-4d9a-8ddd-a5d1c4565e4c", "LastActivityTime": "/Date(1556007697991+0800)/", "Name": "Display2" } ]
POST Отключение плеера от сервера
http://localhost:8009/MediaController/1.0/RemoveClients
Команда для отключения плеера от сервера
Описание тела запроса:
- Receivers — список имен плееров
Описание тела ответа:
- Code — код результата операции
- Description — описание результата операции
HEADERS
Content-Type | application/json |
BODY
{ "Receivers": [ "Display1" ] }
RESPONSE
{ "Code": 0, "Description": "Операция успешно выполнена", }
Сервер
POST Установка порта
http://localhost:8009/MediaController/1.0/SetPort
Команда для смены порта
Описание тела запроса:
- Port — номер порта
Описание тела ответа:
- Code — код результата операции
- Description — описание результата операции
HEADERS
Content-Type | application/json |
BODY
{ "Port":8009 }
GET Получить отчет
http://localhost:8009/MediaController/1.0/GetReports
Команда для получения полного отчета о показах
Описание тела ответа:
- Address — адрес расположения плеера
- FirstStartTime — Дата запуска сервера
- Id — идентификатор плеера
- LastActivityTime — время последней активности
- MediaDisplayName — имя плеера
- PictureReports — список изображений
- VideoReports — список видео
- PlayTime — длительность показа
- StartTime — время старта показа
- PictureNameFull — путь относительно сервера до файла изображения
- PictureNameShort — имя файла изображения
- VideoNameFull — путь относительно сервера до файла видео
- VideoNameShort — имя файла видео
RESPONSE
[ { "Address": "Ленина, 1", "FirstStartTime": "/Date(1556078645817+0800)/", "Id": "d9aacfd7-8a22-4e3f-8a54-35cc53abf8fc", "LastActivityTime": "/Date(1556078973965+0800)/", "MediaDisplayName": "Display1", "PictureReports": [ { "PictureNameFull": "{RB_SOFT}\\MediaDisplay\\PlayList920\\SlideShow\\Coffee3.jpg", "PictureNameShort": "Coffee3.jpg", "PlayTime": 5, "StartTime": "/Date(1556078963918+0800)/" }, { "PictureNameFull": "{RB_SOFT}\\MediaDisplay\\PlayList920\\SlideShow\\Coffee1.jpg", "PictureNameShort": "Coffee1.jpg", "PlayTime": 5, "StartTime": "/Date(1556078968948+0800)/" }, { "PictureNameFull": "{RB_SOFT}\\MediaDisplay\\PlayList920\\SlideShow\\Coffee2.jpg", "PictureNameShort": "Coffee2.jpg", "PlayTime": 5, "StartTime": "/Date(1556078973965+0800)/" } ], "VideoReports": [ { "PlayTime": 5, "StartTime": "/Date(1556078645817+0800)/", "VideoNameFull": "C:\\RB-Soft\\DisplaySource\\MediaDisplay Server\\Covers\\SplitScreenVertical\\Video (2).mp4", "VideoNameShort": "Video (2).mp4" }, { "PlayTime": 5, "StartTime": "/Date(1556078676261+0800)/", "VideoNameFull": "C:\\RB-Soft\\DisplaySource\\MediaDisplay Server\\Covers\\SplitScreenVertical\\Video (1).mp4", "VideoNameShort": "Video (1).mp4" }, { "PlayTime": 5, "StartTime": "/Date(1556078944828+0800)/", "VideoNameFull": "C:\\RB-Soft\\DisplaySource\\MediaDisplay Server\\Covers\\SplitScreenVertical\\Video (2).mp4", "VideoNameShort": "Video (2).mp4" } ] } ]
GET Получение имени сервера
http://localhost:8009/MediaController/1.0/GetServerName
Команда для получения имени сервера
HEADERS
Content-Type | application/json |
RESPONSE
"Server"
POST Смена имени сервера
http://localhost:8009/MediaController/1.0/SetServerName
Команда для смены имени сервера
HEADERS
Content-Type | application/json |
BODY
{ "ServerName": "MediadisplayServer" }
GET Получение версии сервера
http://localhost:8009/MediaController/1.0/GetServerVersion
Команда для получения версии сервера
"1.14.2.0"