API SpinetiX: различия между версиями

Материал из База знаний SpinetiX
Метка: отменено
Строка 81: Строка 81:
*https://support.spinetix.com/wiki/Shared_Variables#fireSharedEvent.28.29
*https://support.spinetix.com/wiki/Shared_Variables#fireSharedEvent.28.29
*https://support.spinetix.com/wiki/Shared_Variables_legacy_server#Event_command
*https://support.spinetix.com/wiki/Shared_Variables_legacy_server#Event_command
= тестируем видос=
<div style="position: relative; padding-top: 56.25%; width: 100%"><iframe src="https://kinescope.io/embed/8AH3Q6EBjAWDCfZXmCjiKX" allow="autoplay; fullscreen; picture-in-picture; encrypted-media; gyroscope; accelerometer; clipboard-write;" frameborder="0" allowfullscreen style="position: absolute; width: 100%; height: 100%; top: 0; left: 0;"></iframe></div>

Версия от 13:57, 6 декабря 2024


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

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

тестируем видос

<iframe src="https://kinescope.io/embed/8AH3Q6EBjAWDCfZXmCjiKX" allow="autoplay; fullscreen; picture-in-picture; encrypted-media; gyroscope; accelerometer; clipboard-write;" frameborder="0" allowfullscreen style="position: absolute; width: 100%; height: 100%; top: 0; left: 0;"></iframe>