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

Список функций

Процедуры управления записью и просмотром

ОстановитьЗапись (StopRecording)

Назначение: Остановить запись видео, которая была начата функцией НачатьЗапись.

Параметры: Нет

Возвращает: Нет

Когда использовать:

  • После завершения записи видео
  • Когда нужно сохранить файл на диск
  • Перед закрытием приложения

Важно:

  • Остаток видеопотока в буфере будет записан на диск
  • Файл корректно закроется и будет доступен для использования
  • После остановки статус камеры вернётся в значение 0 (ничего не происходит)

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

если Камера.НачатьЗапись() тогда
Сообщение("Запись началась");

// Запись идёт 30 секунд
Пауза(30);

// Остановить запись
Камера.ОстановитьЗапись();
Сообщение("Запись завершена и сохранена");
конец_если;

ОстановитьПросмотр (StopPreview)

Назначение: Остановить просмотр видео с камеры, который был начат функцией НачатьПросмотр.

Параметры: Нет

Возвращает: Нет

Когда использовать:

  • Когда нужно отключить живое видео
  • При переключении между камерами
  • Перед переходом в другой режим (запись, плеер)

Важно:

  • Видеопоток будет полностью остановлен
  • Ресурсы будут освобождены
  • После остановки статус камеры вернётся в значение 0

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

если Камера.НачатьПросмотр() тогда
Сообщение("Просмотр активен");

// Просмотр идёт какое-то время
Пауза(10);

// Остановить просмотр
Камера.ОстановитьПросмотр();
Сообщение("Просмотр отключен");
конец_если;

Процедуры получения кадров

ПолучитьКадры (GetFrames)

Назначение: Получить фотографию с камеры асинхронно, без блокировки интерфейса 1С.

Параметры: Нет

Возвращает: Нет (результат передаётся через событие)

Отличие от ПолучитьКадр:

ПараметрПолучитьКадрПолучитьКадры
Блокировка интерфейса✅ Да, блокирует❌ Нет, не блокирует
Закрытие формы✅ Автоматическое❌ Остаётся открытой
Возвращаемое значениеДвоичныеДанныеСобытие
Удаление файлов✅ Автоматическое❌ Ручное
УдобствоДля простых сценариевДля параллельной работы

Как работает:

  1. Процедура открывает окно захвата кадров
  2. Пользователь может снимать несколько фотографий подряд
  3. После каждого снимка срабатывает событие системы 1С
  4. Интерфейс остаётся доступным для других операций
  5. Форма остаётся открытой для дополнительных снимков

Параметры события:

  • Источник = "MediaBuild"
  • Событие = "GetFrame"
  • Данные = имя временного файла с изображением

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

// В процедуре инициализации формы
&НаКлиенте
процедура ПриСозданииНаСервере()

// Регистрируем обработчик события
ПодключитьОбработчикОжидания("ОбработатьСобытиеMediaBuild", 0.5, Истина);

конец_процедуры;

// Функция для обработки события
&НаКлиенте
процедура ОбработатьСобытиеMediaBuild()

ЭтотОбъект.ПолучитьКадры();

конец_процедуры;

// Обработчик события
&НаКлиенте
процедура ОбработкаВызова(Источник, Событие, Данные)

если Источник = "MediaBuild" и Событие = "GetFrame" тогда

// Данные содержит путь к временному файлу
ПутьКФайлу = Данные;
Сообщение("Снимок сохранён: " + ПутьКФайлу);

// Здесь можно обработать файл
// Скопировать, загрузить на сервер, и т.д.

конец_если;

конец_процедуры;

Важные замечания:

Управление файлами:

  • Временные файлы не удаляются автоматически
  • Вы отвечаете за удаление файлов после использования
  • Рекомендуется периодически очищать папку временных файлов

Формат события:

  • Используется стандартное событие 1С: ОбработкаВызова
  • Убедитесь, что обработчик зарегистрирован
  • Событие срабатывает после каждого снимка

Когда использовать:

  • Когда нужно снимать несколько фотографий подряд
  • Когда пользователь должен оставаться в системе во время съёмки
  • Когда нужна асинхронная обработка снимков
  • Для интеграции с другими процессами в 1С

Процедуры для визуальных элементов

УстановитьОверлейноеИзображение (SetOverlayImage)

Назначение: Установить водяной знак или логотип поверх видеопотока.

Параметры:

  • ПутьКФайлу (Строка) — полный путь к файлу изображения

Возвращает: Нет

Поддерживаемые форматы:

  • BMP (Bitmap)
  • PNG (с прозрачностью)
  • JPG/JPEG
  • GIF

Когда использовать:

  • Добавление логотипа компании на видео
  • Вставка водяного знака для защиты авторских прав
  • Добавление текстовых элементов или фирменных стилей
  • Создание профессионального вида записей

Важно:

  • Оверлей будет виден на всех режимах (предпросмотр, запись, плеер)
  • Убедитесь, что файл существует и доступен
  • Прозрачный PNG идеален для водяных знаков
  • Размер изображения должен быть оптимальным (не слишком большим)

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

// Установить логотип компании
логотипПуть = "C:\Логотипы\logo.png";

если ФайлСуществует(логотипПуть) тогда
Камера.УстановитьОверлейноеИзображение(логотипПуть);
Сообщение("Логотип добавлен к видеопотоку");
иначе
Сообщение("Файл логотипа не найден");
конец_если;

Рекомендации:

  • Размер: 200×100 пикселей или больше (в зависимости от разрешения видео)
  • Формат: PNG с прозрачностью для лучшего вида
  • Расположение: Обычно в левом нижнем или верхнем углу
  • Непрозрачность: Рекомендуется 70-80% для видимости под видео

Процедуры для настроек камер

УстановитьНастройкиИзИсточника (SetSettingsFromSource)

Назначение: Скопировать все настройки с одной камеры на другую.

Параметры:

  • ИндексКамерыИсточник (Число) — номер камеры, с которой копировать настройки (нумерация с 0)

Возвращает: Нет

Что копируется:

  • Разрешение видео
  • Частота кадров
  • Качество видео
  • Настройки кодека
  • Параметры аудио
  • Все остальные параметры текущей камеры

Когда использовать:

  • Когда нужны одинаковые настройки на нескольких камерах
  • При переключении между камерами одного типа
  • Для быстрой настройки новой камеры по образцу
  • При масштабировании системы с несколькими камерами

Важно:

  • Текущая камера = та, куда копируются настройки
  • Камера-источник = та, откуда копируются настройки
  • Процедуру можно вызывать в любой момент
  • Текущая камера должна быть предварительно установлена

Пример 1: Базовое использование**

// Добавить первую камеру и настроить её
камера1 = Камера.ДобавитьКамеру();
// Здесь устанавливаем все нужные параметры...
Камера.УстановитьРазрешение("640x480");
Камера.УстановитьКачество(90);
// и другие настройки...

// Добавить вторую камеру
камера2 = Камера.ДобавитьКамеру();
// ТекущаяКамера уже = камера2

// Скопировать все настройки с первой камеры
Камера.УстановитьНастройкиИзИсточника(камера1);

// Теперь вторая камера имеет те же настройки, что и первая

Пример 2: Настройка нескольких камер**

// Добавить и настроить главную камеру
главнаяКамера = Камера.ДобавитьКамеру();
Камера.УстановитьРазрешение("1920x1080");
Камера.УстановитьФормат("MP4");
Камера.УстановитьБитрейт(5000);

// Добавить дополнительные камеры
для индекс = 2 по 4 цикл
новаяКамера = Камера.ДобавитьКамеру();
// ТекущаяКамера уже установлена на новуюКамеру
Камера.УстановитьНастройкиИзИсточника(главнаяКамера);
конец_цикла;

// Все камеры с 2 по 4 имеют те же настройки, что и главная

Пример 3: Переключение между профилями**

процедура ПрименитьПрофильНастроек(НомерПрофиля)

// Профиль 1 - HD качество
если НомерПрофиля = 1 тогда
Камера.УстановитьРазрешение("1280x720");
Камера.УстановитьКаДрЗнач(30);

// Профиль 2 - Full HD качество
иначе_если НомерПрофиля = 2 тогда
Камера.УстановитьРазрешение("1920x1080");
Камера.УстановитьКадрЗнач(30);

// Профиль 3 - Экономия (для слабых систем)
иначе_если НомерПрофиля = 3 тогда
Камера.УстановитьРазрешение("640x480");
Камера.УстановитьКадрЗнач(15);
конец_если;

конец_процедуры;

Рекомендации:

  • Сначала добавьте камеру-источник, а потом настраивайте
  • Затем добавьте камеру назначения (она автоматически становится текущей)
  • Потом вызовите процедуру копирования
  • Если нужны индивидуальные настройки, переопределите их после копирования

Порядок действий (правильный алгоритм):

1. ДобавитьКамеру()         → Камера 1 становится текущей
2. Настроить параметры → Установить все нужные параметры
3. ДобавитьКамеру() → Камера 2 становится текущей
4. УстановитьНастройкиИзИсточника(1) → Копируем с Камеры 1
5. Дополнительно настроить → Переопределяем нужные параметры (опционально)

Таблица всех процедур

ПроцедураПараметрыНазначение
ОстановитьЗаписьНетОстановить запись видео
ОстановитьПросмотрНетОстановить просмотр с камеры
ПолучитьКадрыНетПолучить снимок асинхронно через событие
УстановитьОверлейноеИзображениеПуть к файлуДобавить логотип на видео
УстановитьНастройкиИзИсточникаИндекс камерыСкопировать настройки с другой камеры

Быстрые примеры

Полный цикл записи

// 1. Начать запись
если Камера.НачатьЗапись() тогда
Сообщение("Запись началась");

// 2. Запись идёт некоторое время
Пауза(60);

// 3. Остановить запись
Камера.ОстановитьЗапись();
Сообщение("Запись завершена");

иначе
Сообщение("Ошибка при запуске записи");
конец_если;

Просмотр с логотипом

// Добавить логотип
Камера.УстановитьОверлейноеИзображение("C:\logo.png");

// Начать просмотр
если Камера.НачатьПросмотр() тогда
Сообщение("Просмотр с логотипом активен");

// Просмотр идёт какое-то время
Пауза(30);

// Остановить просмотр
Камера.ОстановитьПросмотр();
конец_если;

Настройка нескольких камер за раз

// Добавить и настроить образец
образецКамера = Камера.ДобавитьКамеру();
Камера.УстановитьРазрешение("1920x1080");

// Добавить рабочие камеры с теми же настройками
рабочаяКамера1 = Камера.ДобавитьКамеру();
Камера.УстановитьНастройкиИзИсточника(образецКамера);

рабочаяКамера2 = Камера.ДобавитьКамеру();
Камера.УстановитьНастройкиИзИсточника(образецКамера);