Перейти к основному содержимому

События из внешней компоненты

Во время работы во внешней компоненте могут срабатывать определенные события, которые не зависят от 1С.
Обработка таких событий осуществляется на стороне 1С в предопределенной процедуре формы или модуля приложения.

В первом параметре процедуры передается параметр Источник, он всегда равен: MediaBuild и говорит о том, что событие пришло от ВК.
Вторым параметром идет тип события Событие[Число] (тип Строка обязателен), которые отвечает на вопрос, а что это за событие и от какой камеры оно пришло.
И, наконец, третьим параметром идет параметр Данные (тип Строка не обязателен). Он хранит данные, которые может передать ВК.

Для того, чтобы можно было принимать события от ВК в открытой форме определите встроенное событие формы ВнешнееСобытие:

Обработка

Описание процедуры ВнешнееСобытие

А вот описание процедуры:

&НаКлиенте
Процедура ВнешнееСобытие(Источник, СобытиеИКамера, Данные)
// Обработка событие от внешней компоненты MediaBuild
Если Источник = "MediaBuild" Тогда
Событие = Лев(СобытиеИКамера, Найти(СобытиеИКамера, "[") - 1); // Что за событие
НомерКамерыСобытия = Число(Сред(СобытиеИКамера, Найти(СобытиеИКамера, "[") + 1,
Найти(СобытиеИКамера, "]") - Найти(СобытиеИКамера, "[") - 1)); // От какой камеры
Если Событие = "Activation" Тогда
// Программа активирована надо записать "Данные" и
// присвоить ВК
ИначеЕсли Событие = "Frame" Тогда
// Получен кадр из ВК созданный методом GetFrames
ИначеЕсли Событие = "Error" Тогда
// Сообщение об ошибке
ИначеЕсли Событие = "DiskFull" Тогда
// Тут можно остановить запись и присвоить новый ПутьКХранилищу для записи видео
ИначеЕсли Событие = "…" Тогда

КонецЕсли;
КонецЕсли;
КонецПроцедуры

Все события, которые возникают

Activation

Это событие возникает после активации в ВК и в параметре Данные возвращается ключ активации, который необходимо записать в ИБ и присваивать ВК в будущем. Ключ активации генерируется для каждого компьютера, работающего с ВК отдельно. Активация происходит онлайн.

DeviceLost

Событие возникает, когда устройство захвата отключено во время предварительного просмотра или записи.

DiskFull

Возникает, когда диск заполняется во время записи. Необходимо программно тут же либо остановить запись, либо присвоить переменной ПутьКХранилищу(StoragePath) новый путь и выполнить НачатьЗаписьВНовыйФайл(RecordToNewFileNow), это позволит остановить запись в старом месте и продолжить запись в новом.

Error

Возникает, при ошибке в ВК. В данных передается строка с ошибкой.

Frame

Возникает если запустили процедуру ПолучитьКадры(GetFrames) и нажали на кнопку в открывшейся форме Получить. В данных возвращается имя файла, куда был сохранен полученный кадр. Рекомендуется после обработки кадра удалять его.

MotionDetected

Событие возникает при включенном свойстве ДетекторДвиженияВключен и указывает на то, что камера зафиксировала движение

MotionNotDetected

Событие возникает при включенном свойстве ДетекторДвиженияВключен и указывает на то, что камера НЕ зафиксировала движение.

NoVideoDevices

Возникает, если не было обнаружено видео устройств.

PreviewStarted

Возникает при начале просмотра.

RecordingCompleted

Камера окончила запись файла, начатого методом НачатьЗапись(StartRecording). В параметре Данные возвращает имя файла куда шла запись.

RecordingPaused

Возникает во время программной установки паузы.

RecordingStart

Событие возникает при начале записи ВК. Вторым параметром передается имя файла в который будет происходить запись.