Материал из for iRidium developers
Перейти к: навигация, поиск
Эта страница является переводом страницы Video API. Перевод выполнен на 100%.

Other languages:

API iRidium.Видео, камеры, изображения

Методы для создания и использования ссылок на изображения или видео-потоки, а также способы работы с собственными камерами панели управления

Методы

IR.CreateImage

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

Синтаксис

IR.CreateImage(name, {image_properties});

на входе значение описание
name "Camera 1" type: string
имя динамического изображения (камеры)
image_properties Property: value type: object
набор свойств динамического изображения
  • URI: ссылка на изображение
  • Refresh: для картинок (снепшотов), частота обнвления изображения. Для видео-потока 0
  • Demuxer: автоматический или ручной выбор типа потока FFMPEG - для случаев, когда поток не определяется автоматически. Пустое поле - автоматический выбор, mxg - для камеры Mobotix
  • Probe Size: 50000 (Кб) - размер буфера данных в Кб, который приложение загрузит перед началом воспроизведения видео. По умолчанию, если оставить 0, составляет 5 Мб. Можно уменьшить для камер с малым разрешением или для медленного соединения, но, не рекомендуются значения менее 20000 Кб
  • Param: строка для указания типа транспорта RTSP. Укажите tcp, если видео с камеры не воспроизводится через интернет или выдает артефакты воспроизведения
  • Audio: воспроизводить аудио-поток. Работает с камерами Mobotix (mxg)
  • ScaleWidth, ScaleHeight: разрешение изображения. Если не указывать, будет отображаться в оригинальном разрешении
на выходе
Object [object ImagePrototype] type: Object
экземпляр графического объекта (изображения)


Пример

IR.AddListener(IR.EVENT_START,0, function()
{
   // Create image
   IR.CreateImage("Camera 1", {URI: "http://login:pass@host:port/file", 
                              Refresh: 0, 
                              Demuxer: '', 
                              ProbeSize: 0, 
                              Param: '', 
                              Audio: false, 
                              ScaleWidth: 640, 
                              ScaleHeight: 480
                              });
 
   // Get image
   var l_oImage = IR.GetImage("Camera 1");    
   IR.Log(l_oImage)        // [object ImagePrototype]
 
   // Get image properties
   IR.Log(l_oImage.URI)    // http://login:pass@host:port/file
 
   // Setup image (set image properties)
   l_oImage.URI = "http://login:pass@host:port/file";
   l_oImage.Refresh = 0;
   l_oImage.Demuxer = '';
   l_oImage.ProbeSize = 0;
   l_oImage.Param = '';
   l_oImage.Audio = false;
   l_oImage.ScaleWidth = 1024;
   l_oImage.ScaleHeight = 768;
 
   // Link image to Item
   IR.GetItem("Page 1").GetItem("Item 1").GetState(0).Image = IR.GetImage("Camera 1");
   IR.GetItem("Page 1").GetItem("Item 2").GetState(0).Image = l_oImage;
});

если камера создана в Project Gallery, а не через скрипт, ее можно присвоить графическому элементу так:

IR.GetItem("Page 1").GetItem("Item 1").GetState(0).Image = "Сamera from Gallery (name)"

тип видео-потока нельзя изменить "на лету", воздействуя на свойства камеры. Это значит, что если вы создали HTTP камеру (через редактор или скрипт), и ее настройки Demuxer и ProbeSize пусты, то их нельзя будет изменить позже. Изначально создавайте камеру с заполнением всех параметров, которые планируете менять, или создавайте камеру каждый раз заново.


IR.GetImage

получить изображение как объект. Позволяет обратиться к динамическому изображению, созданному из скриптов или в iRidium Studio, обычным способом

Синтаксис

IR.GetImage(name);

на входе значение описание
name "Camera 1" type: string
имя динамического изображения (камеры)
на выходе
Object [object ImagePrototype] type: Object
экземпляр графического объекта (изображения)


Пример

IR.AddListener(IR.EVENT_START,0,function()
{
IR.CreateImage("Norway", {URI: "http://217.17.220.110:80/mjpg/video.mjpg", 
                           Refresh: 0, 
                           Demuxer: '', 
                           ProbeSize: 0, 
                           Param: '', 
                           Audio: false, 
                           ScaleWidth: 640, 
                           ScaleHeight: 480
                           });
 
IR.CreateImage("Screen", {URI: "http://cf2.imgobject.com/t/p/original/l74Tss1TW5a9r6rDbkBYaPbNzcp.jpg", 
                           Refresh: 60000, 
                           Demuxer: '', 
                           ProbeSize: 0, 
                           Param: '', 
                           Audio: false, 
                           ScaleWidth: 800, 
                           ScaleHeight: 600
                           });
 
var l_oImage = IR.GetImage("Norway"); 
 
IR.GetItem("Page 1").GetItem("Item 1").GetState(0).Image = l_oImage;
IR.GetItem("Page 1").GetItem("Item 2").GetState(0).Image = IR.GetImage("Screen");			
});

если камера создана в Project Gallery, а не через скрипт, ее можно присвоить графическому элементу так:

IR.GetItem("Page 1").GetItem("Item 1").GetState(0).Image = "Сamera from Gallery (name)"




IR.Camera

получить видео с фронтальной или основной камеры iOS, Android, Windows устройства и отобразить его на графическом элементе в интерфейсе. Для использования, камеру нужно инициализировать с помощью метода IR.Camera с параметрами, и привязать к графическому элементу в проекте

Синтаксис

IR.Camera(action, <type>, <resolution>)

на входе значение описание
action IR.CAMERA_RECORD type: object
действия с видео-потоком:
  • IR.CAMERA_RECORD - получить видео (нужен type и resolution)
  • IR.CAMERA_STOP - остановить видео (без параметров)
  • IR.CAMERA_TOGGLE - переключить с фронтальной на основную и обратно (type и resolution не нужен)
  • IR.CAMERA_ROTATE - повернуть картинку на угол, который указан в поле type
  • IR.CAMERA_FLIP_VERTICAL - отразить картинку по вертикали (true/false в поле type)
  • IR.CAMERA_FLIP_HORIZONTAL - отразить картинку по горизонтали (true/false в поле type)
type IR.CAMERA_FRONT type: object
для IR.CAMERA_RECORD:
  • IR.CAMERA_BACK - видео с основной камеры
  • IR.CAMERA_FRONT - видео с фронтальной камеры

для IR.CAMERA_ROTATE - угол поворота в градусах
для IR.CAMERA_FLIP_VERTICAL и IR.CAMERA_FLIP_HORIZONTAL - true/false, в зависимости от необходимости инверсии

resolution IR.CAMERA_RESOLUTION_LOW type: object
указываем для IR.CAMERA_RECORD:
  • IR.CAMERA_RESOLUTION_LOW - низкое разрешение
  • IR.CAMERA_RESOLUTION_MEDIUM - среднее разрешение
  • IR.CAMERA_RESOLUTION_HIGH - высокое разрешение
на выходе

-


Пример

// link camera to GUI item
IR.GetPopup("Page 1").GetItem("Item 1").GetState(0).Image = "ir_camera://";
 
// start record
IR.Camera(IR.CAMERA_RECORD, IR.CAMERA_FRONT, IR.CAMERA_RESOLUTION_MEDIUM);
 
// stop record
IR.Camera(IR.CAMERA_STOP);
 
// toggle camera
IR.Camera(IR.CAMERA_TOGGLE);
 
// rotate to angle
IR.Camera(IR.CAMERA_ROTATE, 270);
 
// flip horizontal
IR.Camera(IR.CAMERA_FLIP_HORIZONTAL, true);
 
// flip vertical
IR.Camera(IR.CAMERA_FLIP_VERTICAL, true);

чтобы вывести видео с собственной камеры устройства на графический элемент, запишите "ir_camera://" в свойство .Image графического элемента, как показано в примере выше
если вы используете протокол SIP для передачи и получения SIP видео, входящий видео поток запишите как "sip_image://" в свойство .Image графического элемента. Подробно в инструкции SIP.