Как включить повтор и случайный порядок воспроизведения видео в 1С 7.7?

Программист 1С v7.7 IT и автоматизация бизнеса
← На главную

При интеграции мультимедиа в 1С:Предприятие 7.7 разработчики часто используют COM-объект или ActiveX-элемент Windows Media Player (библиотека wmp.dll / WMPlayer.OCX). Однако при попытке настроить непрерывное зацикленное воспроизведение (повтор) или включить случайный порядок треков прямое обращение к вымышленным свойствам вроде Плеер.settings.repeat = 1 приводит к ошибке «Поле агрегатного объекта не обнаружено».

Разберем, как правильно управлять режимами воспроизведения Windows Media Player через встроенный язык 1С 7.7, какие параметры принимает объект и с какими платформенными ограничениями можно столкнуться.

Причина ошибки и правильный синтаксис управления режимами

Проанализируем архитектуру объекта settings в Windows Media Player. В объектной модели WMP свойство repeat отсутствует. Управление циклом, случайным порядком и другими режимами осуществляется не через прямое присвоение свойств, а с помощью специализированных методов setMode и getMode.

Метод setMode принимает два параметра:

  1. bstrMode — строковое наименование режима.
  2. varfMode — булево значение (в 1С 7.7 передается как -1 или 1 для истины и 0 для лжи), определяющее, активен ли режим.

Посмотрим на доступные режимы bstrMode:

  1. "loop" — зацикливание текущего списка воспроизведения. После окончания последнего трека воспроизведение начинается сначала.
  2. "shuffle" — воспроизведение дорожек в случайном порядке. Обратите внимание на правильность написания названия режима (с двумя буквами f).
  3. "autoRewind" — автоматическая перемотка дорожки в начало после завершения проигрывания.
  4. "showFrame" — отображение ближайшего ключевого кадра при остановленном воспроизведении (актуально только для видео).

Реализация зацикленного воспроизведения (Loop)

Рассмотрим базовый пример создания объекта плеера и включения циклического воспроизведения файла:


// Создание COM-объекта Windows Media Player
Плеер = СоздатьОбъект("WMPlayer.OCX");

// Включаем зацикливание воспроизведения
Плеер.settings.setMode("loop", -1);

// Указываем путь к медиафайлу и запускаем
Плеер.URL = "C:\Video\promo.mp4";
Плеер.Controls.Play();

Для проверки того, включен ли режим в текущий момент, воспользуемся методом getMode:


Если Плеер.settings.getMode("loop") = -1 Тогда
    Сообщить("Режим зацикливания активен");
КонецЕсли;

Включение случайного порядка воспроизведения (Shuffle)

Если задача заключается в проигрывании нескольких роликов или аудиозаписей в случайном порядке, включим режим "shuffle". Чтобы случайный порядок работал корректно, плееру необходим список воспроизведения (плейлист), а не одиночный файл через свойство URL.

Разберем пример добавления файлов в текущий плейлист с последующим перемешиванием:


Плеер = СоздатьОбъект("WMPlayer.OCX");

// Включаем зацикливание и случайный порядок
Плеер.settings.setMode("loop", -1);
Плеер.settings.setMode("shuffle", -1);

// Формируем список воспроизведения
Плейлист = Плеер.currentPlaylist;

Медиа1 = Плеер.newMedia("C:\Video\clip1.mp4");
Плейлист.appendItem(Медиа1);

Медиа2 = Плеер.newMedia("C:\Video\clip2.mp4");
Плейлист.appendItem(Медиа2);

// Запуск воспроизведения
Плеер.Controls.Play();

Тонкости настройки и ограничения 1С 7.7

При внедрении медиаплеера в решения на базе 1С 7.7 важно учитывать ряд технических особенностей платформы:

  1. Разрядность и системные кодеки: Платформа 1С 7.7 является 32-разрядным (x86) приложением. Чтобы плеер мог открывать современные форматы видео (например, MP4 / H.264), в операционной системе обязательно должны быть установлены 32-битные DirectShow/Media Foundation кодеки.
  2. Отображение на форме: Штатный диалог формы 1С 7.7 не поддерживает визуальное размещение ActiveX-компонентов без дополнительных внешних библиотек (например, 1C++ с компонентом контейнера ActiveX). При вызове через СоздатьОбъект("WMPlayer.OCX") плеер работает в фоновом режиме (подходит для аудио или фонового управления). Для отображения видео на форме используются внешние компоненты либо запуск внешнего окна проигрывателя.
  3. Отслеживание событий (Events): В 1С 7.7 нет встроенного механизма подписки на COM-события завершения трека. Для отслеживания состояния проигрывателя используем периодический опрос через ОбработкаОжидания, анализируя свойство Плеер.playState (значение 3 — воспроизведение, 1 — остановлено, 8 — трек завершен) или Плеер.Controls.currentPosition.
  4. Настройка интерфейса и звука: Отключить стандартные кнопки управления и рамки плеера можно свойством Плеер.uiMode = "none", управлять громкостью — Плеер.settings.volume = 80 (от 0 до 100), а отключить звук полностью — Плеер.settings.mute = -1.
← На главную