При интеграции мультимедиа в 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 или 1 для истины и 0 для лжи), определяющее, активен ли режим.Посмотрим на доступные режимы bstrMode:
f).Рассмотрим базовый пример создания объекта плеера и включения циклического воспроизведения файла:
// Создание COM-объекта Windows Media Player
Плеер = СоздатьОбъект("WMPlayer.OCX");
// Включаем зацикливание воспроизведения
Плеер.settings.setMode("loop", -1);
// Указываем путь к медиафайлу и запускаем
Плеер.URL = "C:\Video\promo.mp4";
Плеер.Controls.Play();
Для проверки того, включен ли режим в текущий момент, воспользуемся методом getMode:
Если Плеер.settings.getMode("loop") = -1 Тогда
Сообщить("Режим зацикливания активен");
КонецЕсли;
Если задача заключается в проигрывании нескольких роликов или аудиозаписей в случайном порядке, включим режим "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 важно учитывать ряд технических особенностей платформы:
СоздатьОбъект("WMPlayer.OCX") плеер работает в фоновом режиме (подходит для аудио или фонового управления). Для отображения видео на форме используются внешние компоненты либо запуск внешнего окна проигрывателя.ОбработкаОжидания, анализируя свойство Плеер.playState (значение 3 — воспроизведение, 1 — остановлено, 8 — трек завершен) или Плеер.Controls.currentPosition.Плеер.uiMode = "none", управлять громкостью — Плеер.settings.volume = 80 (от 0 до 100), а отключить звук полностью — Плеер.settings.mute = -1.