API SpinetiX

Материал из База знаний SpinetiX


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

  • Виджет: Интерактивный плейлист. Скачать

Файл:Interactive Playlist2.zip