API SpinetiX

Материал из SpinetiX knowledge base
на этой странице были произведены изменения, не отмеченные для перевода.


API Spinetix

Какие языки программирования можно использовать, если нужен дополнительный функционал?

Основной язык плеера — javascript + SVG. Есть собственная библиотека jSignage. Это эффекты, построение слоев и анимации, REST и работа с внешними данными. Можно использовать PHP в виде отдельных модулей и отдельные элементы node.js CSS и HTML не поддерживаются. HTML5 поддерживается на уровне технологий SVG Tiny 1.2 Micro DOM (uDOM) API, JavaScript, XMLHttpRequest Level 1 API, HTMLImageElement, HTML Canvas 2D Context API.

Как использовать Telnet, управление по HTTP

Управление в плеерах SpinetiX — двухстороннее. Это означает, что плеер может управлять внешним устройством, и внешнее устройство может управлять плеером. Пояснение по синтаксису для HTTP REST, Telnet и др. — https://youtu.be/i-zwjJuVm5I в видеоролике и материалах для скачивания. Есть аналогичный виджет, работающий по протоколу PJLink. Пример использования здесь – https://dstools.ru/spinetix-panasonic

Управление экранами и проекторами через PJLink

Плееры могут общаться со средствами отображения через протокол PJLink. Для экранов и проекторов Panasonic существуют готовые модули, обеспечивающие контроль состояния средств отображения и управление. Виджеты размещаются в календаре в заданное время. Читайте кейс "Как контролировать экран и переключение источника сигнала?" – https://dstools.ru/spinetix-panasonic

Поддерживаются ли RAW TCP, Sockets и т.п.?

Да, поддерживаются. С использованием этих инструментов построены виджеты работы с PJLink

Можно ли читать данные, например, бегущую строку, с UNC ресурса (\\IvanSergeych\MyDocuments….)?

Нет. Данные можно читать только с HTTP ресурсов. Если есть необходимость использовать локальные данные с ПК, воспользуйтесь виртуальными вебсерверами, к которым можно подключить локальную папку. Мы используем XAMPP.

Какие форматы внешних данных можно читать?

CSV, TXT, XML, RSS, ICS, JSON. Тонкая настройка парсеров доступна в Elementi X (переназначение колонок, фильтры и т.п.), а также с помощью присоединенных javascript инструкций.

Как добыть данные из localStorage

  • Включить Advanced, WebStorage API.
  • В браузере http://192.168.50.57/webstorage?name=НАЗВАНИЕПЕРЕМЕННОЙ
  • Список всех хранящихся переменных без содержимого: http://192.168.50.57/webstorage
  • Для ajax запросов использовать API ключ, без него работать не будет.
  • В браузер вывалятся данные в json формате
  • Превратить в людской формат можно здесь https://json-csv.com/
  • Годно для доставания записанных данных. Например, результатов голосования.

Как управлять плеером по координатам через event

ВАРИАНТ 1. Используем готовый скрипт:

В этом проекте:

Видно курсор, удобно для теста.

Чтобы его скрыть, комментим в индексе эту строчку: jSignage.UI.cursor({type: 'circle', size: 30, color: 'blue'}).addTo('svg');

В файле fse.js готовые функции и описание команд

ВАРИАНТ 2. Без готового скрипта:

Пример команды по координатам х45 y20: http://[адрес плеера]:1234/event?mousedown=x%3D45,y%3D20,button%3D0&mouseup=x%3D45,y%3D20,button%3D0

Матчасть на спинетикс вики:

Все про управление воспроизведением + Interactive playlist + html

Управление воспроизведением строится на основе подачи плееру команд через API порт. Самый простой способ — http. Второй по популярности — telnet. Дальше идут udp, сокеты и т.п.

Синтаксис http. GET или POST запрос должен выглядеть так: http://[ip_address]:1234/update?container_name1=switch_value1&container_name2=switch_value2&rpc-api-key=КЛЮЧAPI

В конце добавлять ключ API. Связано с безопасностью CORS. Пример добавки к запросу: &rpc-api-key=637bbac5-b79c-4af8-9628-edeb6d3fbc8c

Получить ключ: контрольный центр, Advanced, RPC Security, Enable AJAX CORS, скопировать ключ

Где:

  1. ip_address это IP плеера
  2. 1234 это порт API (Контрольный центр, Network API, может быть любым)
  3. update это служебная команда обновления/назначения переменных
  4. container_name1 это контейнер с переключаемым контентом №1. Назначается в настройках контейнера. Управляемые контейнеры лежат в Виджеты/Интерактив. Мы используем самодельный, в приложении.
  5. switch_value1 это название сценария, включаемого в контейнере
  6. container_name2 это контейнер с переключаемым контентом №2
  7. switch_value2 это название сценария, включаемого в контейнере

Контейнеров может быть сколько угодно, в т.ч. невидимых (с трансляцией команд в RS-232, выполняющих служебные задачи, отправляющих какие-либо запросы, предзагружающих картинки и т.п.). Если надо синхронное переключение на нескольких плеерах (видеостена или просто отдельные устройства), то используется название контейнера, далее @ip мастер-плеера. Мастер это плеер, отвечающий за синхронное переключение. Никаких специальных настроек не нужно, просто выбрать мастером переключения и все. Должен быть открыт API. См. приложенный Interactive playlist, там название контейнера - switch@192.168.50.100 Это для видеостен.

Пример команды: http://192.168.50.100:1234/update?switch=mainPlaylist

Видео про синтаксис: https://www.youtube.com/watch?v=i-zwjJuVm5I

В приложении html, которым мы пользуемся для переключения сценариев и картинка-объяснение как он работает. Если владеешь html хотя бы в базе — разберешься. Если что спрашивай.

HTML размещается прямо в проекте на плеере. Создаешь отдельного пользователя, далее с любого телефона открываешь http://192.168.50.100:81/m/index.html и управляешь воспроизведением. 81 порт это порт доступа к файлам плеера.

СКАЧАТЬ

  • HTML интерфейс управления контентом. Скачать Файл:M.7z