понедельник, 24 октября 2011 г.

API. Планировщик.

Планировщик обычно используется во всех видеотабло, именно он отвечает за показ Списков воспроизведения. Планировщиков в конфигурации может быть несколько, например табло состоящих из нескольких частей, для которых требуется независимый вывод. С помощью планировщика можно загружать списки воспроизведения, логотипы, приостанавливать воспроизведение, обновлять журнал воспроизведения и т.д. Еще одним замечательным свойством планировщика, является выполнение пользовательских скриптов, заданных в плейлисте. Таким образом в плейлист, после заданного клипа, можно вставить скрипт, если кликнуть мышкой по стрелке на кнопке "Вставить новый элемент" и выбрать "Мастер заданий".

Далее будем придерживаться соглашения, что код будет написан моноширинным шрифтом, вместо object должно стоять имя компонента, указанное в конфигурационном файле (не забудьте указать перед ним Application). В квадратные скобки будут браться необязательные параметры.

Программный идентификатор: progid:NISheduler.ShedulerUI

Примечание: Доступ из скриптов к объекту Планировщик на самом деле происходит через объект NISheduler.ShedulerUI, который агрегирует собственно сам Планировщик.

Свойства:

  • object.AutoRunFile [= строка]
    Файл со списком автозагрузки (autorun.xjob)
    Изменяя содержимое файла, можно добиться, что при следующем запуске будет загружен нужный плейлист
  • object.Playlist [= строка]
    Текущий плейлист. При присваивании аналогичен методу LoadPlayList(имяФайла, False, True)
  • object.Logos [= строка]
    Файл со списком логотипов.
  • object.Audio [ = булево значение (True|False)]
    Вывод звука.
  • object.StretchMode [= строка]
    Тип масштабирования для видеороликов.
    Допустимые значения:
    "stretch" - Растянуть под размер экрана.
    "crop" - Без масштабирования, видео обрезается под размер экрана.
    "preserveaspectratio" или "preserve" - Сохранить пропорции с рамкой. Видео на весь экран с сохранением пропорций. По краям могут возникнуть черные поля, если не пропорции видео не совпадают с экраном. Не обрезает.
    "preserveaspectratio_noletterbox" или "noletterbox" - Сохранить пропорции. Видео на весь экран с сохранением пропорций. Может обрезать края, если не пропорции видео не совпадают с экраном. Значение по умолчанию.
  • object.LogolistActive [= булево значение]
    Показывать логотипы.

Методы:

  • object.LoadPlayList имяФайла, безусловный, выполнить
    Загружает плейлист.
    имяФайла - Строка. Файл .xjob с плейлистом.
    безусловный - Булево значение. Если True, то немедленный запуск плейлиста; False - будет доигран текущий клип и затем загружен новый плейлист.
    выполнить - Булево значение. Запустить проигрыватель.
  • object.BackupAndEraseLog имяФайла
    Сохранить текущий файл журнала под именем имяФайла и очистить журнал.
  • object.PausePlaylist
    Приостановить вывод плейлиста.
  • object.ResumePlaylist
    Возобновить показ плейлиста.
  • object.PauseAll
    Приостановить показ (Плейлист/Логотипы/Видеозахват/Тест).
  • object.ResumeAll
    Возобновить показ.
  • object.RotateLogs
    Выполнить ротацию журнала (новое имя на основе текущей даты/месяца).
  • object.LoadLogoList имяФайла, выполнить
    Загрузить логотипы.
    имяФайла - Строка. Имя файла плейлиста с логотипами.
    выполнить - Булево значение. Начать показ логотипов.

Примеры использования:

В "Мастере заданий" представлены несколько примеров использования объекта Планировщик: Сменить/Очистить список воспроизведения, Сменить/Очистить список логотипов, Безусловная смена списка воспроизведения.
Предположим раз в день в 12 часов необходимо показать определенный плейлист, а в остальное время показывать стандартный список воспроизведения. Для этого создаем этот плейлист и в конец его ставим скрипт на выполнение "Сменить список воспроизведения" с указанием стандартного плейлиста. Сам скрипт будет выглядеть так (если имя планировщика в конфигурации задано как sheduler):
Application.Sheduler.Playlist="default.xjob"
Далее с помощью вкладки "Задания" создаем задание на запуск этого плейлиста в 12 ч. ежедневно. Учтите, если выбрать в задании "Сменить список воспроизведения", то плейлист загрузится не ровно 12 ч, а дождется завершения текущего активного клипа. Если необходимо запустить плейлист ровно в 12 ч выберите в Мастере заданий "Безусловная смена списка воспроизведения".

2 комментария:

  1. Андрей, а каким методом можно проверить, запущенно ли в настоящий момент приложение AdvertisePro? Я написал скрипт, для периодического перезапуска программы, но иногда программа почему-то не стартует. Поэтому хочется добавить проверку успешности запуска. Вот мой скрипт:
    Dim WshShell, AdvertisePro, objApp

    Set WshShell = WScript.CreateObject("WScript.Shell") ' Создаем WScript.Shell

    Set objApp = GetObject("AdvertisePro:Application") '
    objApp.Exit -2
    WScript.Sleep 10000
    Set AdvertisePro = WshShell.Exec("AdvertisePro.exe")
    WScript.Quit 0

    ОтветитьУдалить
  2. Может быть Вам подойдет готовое решение, которое проверяет работоспособность AdvertisePro и перезапускает его в случае зависания или падения. Я написал статью APGuard

    ОтветитьУдалить