Список функций
Процедуры управления записью и просмотром
ОстановитьЗапись (StopRecording)
Назначение: Остановить запись видео, которая была начата функцией НачатьЗапись.
Параметры: Нет
Возвращает: Нет
Когда использовать:
- После завершения записи видео
- Когда нужно сохранить файл на диск
- Перед закрытием приложения
Важно:
- Остаток видеопотока в буфере будет записан на диск
- Файл корректно закроется и будет доступен для использования
- После остановки статус камеры вернётся в значение 0 (ничего не происходит)
Пример использования:
если Камера.НачатьЗапись() тогда
Сообщение("Запись началась");
// Запись идёт 30 секунд
Пауза(30);
// Остановить запись
Камера.ОстановитьЗапись();
Сообщение("Запись завершена и сохранена");
конец_если;
ОстановитьПросмотр (StopPreview)
Назначение: Остановить просмотр видео с камеры, который был начат функцией НачатьПросмотр.
Параметры: Нет
Возвращает: Нет
Когда использовать:
- Когда нужно отключить живое видео
- При переключении между камерами
- Перед переходом в другой режим (запись, плеер)
Важно:
- Видеопоток будет полностью остановлен
- Ресурсы будут освобождены
- После остановки статус камеры вернётся в значение 0
Пример использования:
если Камера.НачатьПросмотр() тогда
Сообщение("Просмотр активен");
// Просмотр идёт какое-то время
Пауза(10);
// Остановить просмотр
Камера.ОстановитьПросмотр();
Сообщение("Просмотр отключен");
конец_если;
Процедуры получения кадров
ПолучитьКадры (GetFrames)
Назначение: Получить фотографию с камеры асинхронно, без блокировки интерфейса 1С.
Параметры: Нет
Возвращает: Н ет (результат передаётся через событие)
Отличие от ПолучитьКадр:
| Параметр | ПолучитьКадр | ПолучитьКадры |
|---|---|---|
| Блокировка интерфейса | ✅ Да, блокирует | ❌ Нет, не блокирует |
| Закрытие формы | ✅ Автоматическое | ❌ Остаётся открытой |
| Возвращаемое значение | ДвоичныеДанные | Событие |
| Удаление файлов | ✅ Автоматическое | ❌ Ручное |
| Удобство | Для простых сценариев | Для параллельной работы |
Как работает:
- Процедура открывает окно захвата кадров
- Пользователь может снимать несколько фотографий подряд
- После каждого снимка срабатывает событие системы 1С
- Интерфейс остаётся доступным для других операций
- Форма остаётся открытой для дополнительных снимков
Параметры события:
- Источник =
"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 = Камера.ДобавитьКамеру();
Камера.УстановитьНастройкиИзИсточника(образецКамера);