Эта страница является
переводом страницы
Video API. Перевод выполнен на 100%.
API iRidium.Видео, камеры, изображения
Методы для создания и использования ссылок на изображения или видео-потоки, а также способы работы с собственными камерами панели управления
Методы
IR.CreateImageFromBuffer
Create an image from base64 string.
Syntax
IR.CreateImageFromBuffer(name, {base64});
| name
|
"unique name"
|
type: string a unique name of the image
|
| base64
|
"iVBORw0KG..."
|
type: string a data string in the base64 format
|
| Object
|
[object ImagePrototype]
|
type: Object graphic item (image)
|
Sample
var base64 = "iVBORw0KGgoAAAANSUhEUgAAAGcAAAA+CAYAAAA2wAXAAACXBIWXMAAAsTAAALEwEAmpwJggg=="
var id = IR.CreateImageFromBuffer("unique name", base64);
IR.GetPage("Page 1").GetItem("Item 1").GetState(0).Image = IR.GetImage(id);
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.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.DeleteImage
It deletes a dynamic image created earlier with the help of IR.CreateImage method. If it is required to change a camera dynamically, this method can be used to delete a created oject and avoid increasing the load in the app due to broadcasting two streams. Use this method before every camera change.
Syntax
IR.GetImage(name);
| name
|
"Camera 1"
|
type: string name of dynamic image (camera)
|
| Object
|
[object ImagePrototype]
|
type: Object graphic item (image)
|
Sample
IR.AddListener(IR.EVENT_ITEM_RELEASE,IR.GetPage("Page 1").GetItem("Item 2"),function()
{
IR.DeleteImage("Camera 1"); //delete old camera from the object
var l_oImage = IR.CreateImage("Camera 2", {URI: "rtsp://192.168.1.112/live/ch00_0",
Refresh: 0,
Demuxer: '',
ProbeSize: 0,
Param: '',
Audio: false,
ScaleWidth: 640,
ScaleHeight: 480
});
IR.Log("ID new camera = " + l_oImage.ID) // [object ImagePrototype]
IR.GetPage("Page 1").GetItem("Item 1").GetState(0).Image = l_oImage;
})
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.