В этой статье я опишу API для работы с рендерером AdvertisePro, которое можно использовать в пользовательских скриптах на VBScript. Используя API Вы сможете получить доступ к текущим коллекциям медиа-объектов, проигрываемых рендерером, управлять ими и медиа-объектами.
Чтобы данные скрипты работали на AdvertisePro версии 3.2, 3.2.1 нужно обновить файл библиотеки NIMediaObjectu7.dll
Чтобы узнать под каким именем он определен в вашем файле конфигурации можно сделать поиск по его progid. В некоторых случаях может быть несколько рендереров. Зная его имя можно обращаться к нему из скрипта, например
Рассмотрим его свойства:
Параметры:
Чтобы данные скрипты работали на AdvertisePro версии 3.2, 3.2.1 нужно обновить файл библиотеки NIMediaObjectu7.dll
Объект MediaRenderer. progid:NIVideoRender.MediaRenderer
Обычно данный объект прописан в конфигурационном файле под именемrenderer
:
<object name="renderer" xsi:type="cfg:MediaRender" clsid="progid:NIVideoRender.MediaRenderer" ...>
Чтобы узнать под каким именем он определен в вашем файле конфигурации можно сделать поиск по его progid. В некоторых случаях может быть несколько рендереров. Зная его имя можно обращаться к нему из скрипта, например
Application.renderer
.Рассмотрим его свойства:
Имя | Доступ | Описание |
---|---|---|
PermanentMedia | Чтение/Запись | Коллекция постоянных объектов. Именно она содержит список воспроизводимых объектов из текущего плейлиста |
CurrentMedia | Чтение/Запись | Текущий воспроизводимый медиа-объект. Set mediaObject = renderer.CurrentMedia |
AddMedia | Метод | Добавление медиа-объекта в пул постоянных медиа-объектов.renderer.AddMedia mediaObject |
RemoveMedia | Метод | Удаление медиа-объекта из пула постоянных медиа-объектов.renderer.RemoveMedia rendererId |
MoveUp | Метод | Увеличить Z-координату объекта.renderer.MoveUp rendererId |
MoveDown | Метод | Уменьшить Z-координату объекта.renderer.MoveDown rendererId |
MoveToFront | Метод | Переместить объект на передний план.renderer.MoveToFront rendererId |
MoveToBack | Метод | Переместить объект на задний план.renderer.MoveToBack rendererId |
RemoveAll | Метод | Удалить все объекты.renderer.RemoveAll |
Background | Чтение/Запись | Текущий фон.Set background = renderer.Background |
Width | Чтение | Ширина |
Height | Чтение | Высота |
Advertising | Чтение/Запись | Режим показа рекламы. В этом режиме по окончании ролика его последний кадр продолжает оставаться на экране пока готовится к показу следующий ролик. renderer.Advertising = true |
SetMediaPosition | Метод | Задает координаты верхнего левого угла для вывода медиа-объекта. renderer.SetMediaPosition rendererId, x, y |
Media | Функция | Поиск медиа-объекта.Set media = renderer.Media(key, flags) |
All | Чтение | Коллекция всех меда-объектов |
- mediaObject - объект MediaObject
- rendererId - Идентификатор-строка элемента в рендерере (см. св-ва медиа-объекта).
- background - объект Background
- x, y - целые числа
- flags - Флаги поиска:
0 - поиск по rendererId (по умолчанию)
1 - поиск по Alias
2 - поиск всех объектов
4 - поиск по cookie - key - поиск по заданному значению, зависит от flags
- Коллекции - стандартные, индекс начинается с 0, в качестве индекса может использоваться RendererId.
Dim oMedia, oMedia3, oOtherMedia
For Each oMedia in renderer.PermanentMedia
Rem Работаем с медиа-объектом
Next
Set oMedia3 = renderer.PermanentMedia(3)
Set oOtherMedia = renderer.PermanentMedia("{087846D6-2EE3-49FB-824B-9DB9746AC8BD}")
Медиа-объект
Имя | Доступ | Описание |
---|---|---|
sourceURL | Чтение | Путь к файлу воспроизведения |
duration | Чтение | Длительность в секундах |
RendererId | Чтение | Строка - идентификатор объекта. Доступна после добавления меда-объекта в рендерер |
ZOrder | Чтение/Запись | Z-координата объекта |
Alias | Чтение/Запись | Псевдоним |
Cookie | Чтение | Cookie |
x | Чтение/Запись | x-координата верхнего левого угла |
y | Чтение/Запись | y-координата верхнего левого угла |
CurrentPosition | Чтение/Запись | Текущее положение воспроизведения в секундах |
StopTime | Чтение/Запись | Время остановки воспроизведения в секундах. |
Rate | Чтение/Запись | Коэффициент скорости воспроизведения |
SelfDeleteOnComplete | Чтение/Запись | Автоматическое удаление после воспроизведения.oMedia.SelfDeleteOnComplete = true |
ReleaseMedia | Метод | Освободить медиа-объект.oMedia.ReleaseMedia |
Медиа-загрузчик
Данный объект нужно использовать для создания новых медиа-объектов и управления выводом звука или масштабированием. Обычно в конфигурационном файле он называется MediaLoader, соответственно из скрипта он доступен как
Application.MediaLoader
. Чтобы узнать его имя найдите в конфигурационном файле объект с clsid="progid:NIMediaObject.MediaLoader"
. Их может быть несколько.Имя | Доступ | Описание |
---|---|---|
LoadURL | Функция | Получить медиа-объект из указанного файла. Set oMedia = mediaLoader.LoadURL("C:\Video\clip1.avi") |
Audio | Чтение/Запись | Включить/выключить вывод звука. mediaLoader.Audio = false |
StretchMode | Чтение/Запись | Тип масштабирования: 0 - растянуть 1 - обрезать 2 - сохранить пропорции с рамкой 3 - сохранить пропорции |
CheckURL | Метод | Если указанный файл не может быть воспроизведен возникнет исключение.On Error Resume Next |
Width | Чтение/Запись | Ширина |
Height | Чтение/Запись | Высота |
Примеры
Предположим, что мы хотим в определенный момент показать заданный ролик, который отсутствует в плейлисте. Будем показывать его с удвоенной скоростью и в медиаплеере он будет отображаться с нужным нам именем в поверх основного плейлиста. Сам плейлист будет продолжать воспроизведение. После окончания ролика он самостоятельно удалиться:
Dim oMedia
// Создаем медиа-объект
Set oMedia = Application.MediaLoader.LoadURL("C:\Videos\Clip.avi")
// Указываем ZOrder больше чем основной плейлист
oMedia.ZOrder = 200
// Под этим именем он будет отображаться
oMedia.Alias = "Тестовый ролик"
// Двойная скорость воспроизведения
oMedia.Rate = 2.0
// Удалить себя по окончании!!!
oMedia.SelfDeleteOnComplete = true
Application.renderer.AddMedia oMedia // Воспроизводим