Mediadisplay 2: Описание API

< Назад
Содержание
Содержание

Вводная часть

Цель

Целью данного раздела является описание взаимодействия с системой Медиадисплей и инициатором 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 структура темы Медиадисплея»

Рисунок 2 – Структура темы

Взаимодействие происходит при помощи 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

StructurePOS
Content-Typeapplication/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

StructurePOS
Content-Typeapplication/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

StructurePOS
Content-Typeapplication/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

NameImage.jpg
DestinationPathSlideShow

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-Typeapplication/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-Typeapplication/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-Typeapplication/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-Typeapplication/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-Typeapplication/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-Typeapplication/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-Typeapplication/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-Typeapplication/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-Typeapplication/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-Typeapplication/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-Typeapplication/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

NameDisplay1

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-Typeapplication/json

BODY

{
    "Receivers": [
        "Display1"
    ]
}

RESPONSE

{
  "Code": 0,
  "Description": "Операция успешно выполнена",
}

Сервер

POST Установка порта

http://localhost:8009/MediaController/1.0/SetPort

Команда для смены порта

Описание тела запроса:

  • Port — номер порта

Описание тела ответа:

  • Code — код результата операции
  • Description — описание результата операции

HEADERS

Content-Typeapplication/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-Typeapplication/json

RESPONSE

"Server"

POST Смена имени сервера

http://localhost:8009/MediaController/1.0/SetServerName

Команда для смены имени сервера

HEADERS

Content-Typeapplication/json

BODY

{
    "ServerName": "MediadisplayServer"
}

GET Получение версии сервера

http://localhost:8009/MediaController/1.0/GetServerVersion

Команда для получения версии сервера

"1.14.2.0"
Авторизация
*
*

4 × один =

Регистрация
*
*
*

пять × четыре =

Генерация пароля

пять × три =