В публикации представлена обработка, которая демонстрирует работу с COM-объектом "WMPlayer.OCX". встроенным в ОС Windows, и позволяет проигрывать различные медиа-файлы, которые, видимо, поддерживаются Windows Media Player. Обработку тестировал на файлах *.mp3 (в том числе по протоколу http), видео файлы *.mp4 (воспроизводится только звук) и др. медиа-файлы. Обработка будет интересна тем, кто еще не знает, как воспроизвести аудио файл из 1С, и тем, кто хочет узнать, какие еще есть возможности в "WMPlayer.OCX" для работы с аудио файлами. В публикации представлены обработки для обычного и управляемого приложения. Кратко работа с обработкой и ее внешний вид представлены в анимации ниже:
Также, кому интересно, код процедуры воспроизведения аудио файла разными способами:
Процедура ВоспроизвестиЗвуковойФайл(ИмяФайла) Экспорт
Ошибка = Ложь;
Попытка
COMОбъект = Новый COMОбъект("WMPlayer.OCX");
COMОбъект.URL = ИмяФайла;
COMОбъект.controls.Play();
Исключение
Ошибка = Истина;
КонецПопытки;
Если Ошибка Тогда
Попытка
COMОбъект = Новый COMОбъект("MediaPlayer.MediaPlayer");
COMОбъект.Open(ИмяФайла);
COMОбъект.Play();
Ошибка = Ложь;
Исключение
Ошибка = Истина;
КонецПопытки;
КонецЕсли;
Если Ошибка Тогда
Попытка
COMОбъект = Новый COMОбъект("WScript.Shell");
COMОбъект.Run("wmplayer """ + ИмяФайла + """", 0, Ложь);
Ошибка = Ложь;
Исключение
Ошибка = Истина;
КонецПопытки;
КонецЕсли;
КонецПроцедуры
Каждый может добавить и свой способ.
Обновление 2025/04/28
Обновление 2025/09/25
боян
Спасибо! Деструктивненькая критика 🙂
(1)Да? А когда было? Чота не вижу ничего похожего. Один абадона накатал ocx и на этом все.
(2) зачем для этого нужны внешние компоненты, когдаhttp://v8.1c.ru/o7/201604mobile/index.htm ?
(4) PrinzOfMunchen, ну во первых это будет только в далеком будущем и во вторых только для мобильной платформы, бьюсь об заклад, что разработчики никогда не добавят эту возможность для настольной платформы. Вот ссылка на ветку официального форума 1С по этому вопросу:https://partners.v8.1c.ru/forum/message/1476252#m_1476252 Если у Вас нет доступа у форуму, то цитирую:
Как-то странно получается, что возможности мобильной платформы в этом направлении опережают возможности обычного приложения (в смысле тонкого клиента). В мобильной платформе уже появляется метод ВоспроизвестиЗвуковоеОповещение(), а когда же тонкий клиент получит такую штатную возможность? Есть это в планах?
Оценить: -1 +1 Ответить
0 Сосна Евгений (1Service, Москва) 12.04.2016 15:36 1476208 Отвечает на
Что вам мешает использовать командную строку? Вызывать тот-же fmpeg и проигрывать необходимый звук хоть на linux, хоть на windows.
Оценить: -1 +1 Ответить
0 Буторин Александр (АйТимПро, Москва) 12.04.2016 16:29 1476245 Отвечает на
1. Командная строка позволит только запустить стороннее приложение наличие которого нужно проверить перед вызовом.
2. Необходимо загрузить звуковой файл который нужно воспроизвести
3. Без шаманства невозможно воспроизвести стандартный звук установленный для оповещения в ОС.
Оценить: -1 +1 Ответить
0 Кузин Александр (Дилакс, Волгоград) 12.04.2016 16:41 1476252 Отвечает на
Оно, в общем-то, понятно, что на компьютере большой простор для костылей.
Про fmpeg я не знал. Для себя написал внешнюю NativeAPI компоненту (туда же добавил и паузу, и ещё каких-то хотелок, пока только под windows).
Показать
По сути это все, что ему ответили, так что ждите маны небесной и дальше, наивные оптимисты. В другой ветке предложили такие же костыли. К сожалению не смог найти повторно ветку в которой разработчики ответили, что данная возможность (воспроизведение звуковых файлов) необходима слишком редко, что бы включать ее в состав платформы. У разработчиков платформы всегда свои взгляды на то, какие должны быть возможности в платформе, а какие никогда не понадобятся разработчикам прикладных решений…
(5) ну а в действительности, что разве разработчики платформы не правы в том, что возможность воспроизведения аудиофайлов в приложениях требуется крайне редко? По мне так это уже какие-то специфические задачи, все таки платформа предназначена для автоматизации учета, а не для реализации различных мультимедийных приложений.
Для меня проблема не в том, что разработчики не предоставили Voice API, а в том что современные Web технологии в 1С появляются с опоздание в несколько лет.
А они уже позволяют сделать и звук и видео.
http://infostart.ru/public/248770/
http://infostart.ru/public/235751/
Эмуляции по подходы по поводу звука:
Эмуляции по поводу видео:
(6)(7)Тут как я понял, что вся фишка, в том, что мы получаем кучу контролов типа ползунка воспроизведения, баланса, громкости и скорости. А если надо просто проиграть звук, то можно и так:
Показать
(6)
Пользователь взял беспроводной сканер штрихкодов и пошел делать инвентаризацию. Если в процессе работы попался товар с левым штрихкодом, или попался товар, который не должен лежать на этой полке или еще, что то, система должна оповестить пользователя. А то он приходит через полчаса и ему говорят товар с штрихкодом 12345….02 отсутствует в базе. И как узнать что, он в этот момент держал в руках?
Я тоже считаю, что 1С не помешало бы встроить хотя бы базовую функциональность по работе со звуком, вполне достаточно добавить поддержку воспроизведения wav и mp3
Вот она, «базовая функциональность» — стандартный звук системы, он же «зведочка», он же echo #k8SjZc9DxkG в консоли:
Неоднократно видел.
звуковое оповещение однозначно надо. У меня на WMS разработчики столкнулись с этим — я не спец по восьмерке — подключают какое-то расширение платформы, а в результате подвисает. Попробую подсунуть эту возможность.
На клюшках все звуковое оповещение мгновенно воспроизводилось через формекс, а как переползли на восьмерочную ВМС — звук накрылся… и часто получается что пипл сканирует кучу раз а потом видит что на экране висит вопрос или аларм — а без звука это нифига не отследишь — после каждого пика ТСД не будешь смотреть на экран…
так что надо! однозначно надо!!
(11) v3rter, вариант для твоей капилки в стиле нет
(3) webester,http://infostart.ru/public/281337/ годичной давности
(0)? про возможность использования WMPlayer’a, действительно, уже не раз писали на Инфостарте.
Интересные возможности 1С , которая была опубликована всего-то на один день раньше Вашей. Правда, скудно довольно описаны возможности этого COM объекта, но… есть, как правило документация к COM-объекту, а если нет, то существует инструментарий, позволяющий эту документацию получить. Например, вот этот: HTML Help COM Assistant .
Вот, в этой публикации, например :
(13) Fox-trot, Спасибо, попробую.
А в демонстрации мелодия играет интересная! Нашел таки ее по названию файла, зачетная музЫчка…
Таки боян действительно. Автор, а в тонком или веб-клиентах заработает?
(18) Yashazz, конкретно эта обработка работает только в обычном приложении. Смысла переписывать под тонкий и веб нет, сам понимаете — боян…
Сигнал(); =)
Ну не знаю баян напишу или нет, но на УФ достаточно просто решается полем HTML следующего содержания:
ПолеHTML = «<html>
|<head>
|<meta http-equiv=»»X-UA-Compatible»» content=»»IE=edge»»/>
|</head>
|<body>
|<audio controls>
|<source src=»»» + АдресMP3 + «»» type=»»audio/mpeg»»>
|Your browser does not support the audio element.
|</audio>
|</body>
|</html>»;
где АдресMP3 — это адрес временного хранилища, куда положили двоичные данные записи
вот вам и бегунок и полоса прокрутки аудио)
(6) Они во всем правы, но вот ротацию картинок не могут сделать на макетах уже лет 8. 🙂
(22) Если, вы имеете ввиду поворот картинки, то с определенной версии платформы появился объект «ОбработкаКартинок», который позволяет повернуть картинку на угол кратный 90. К примеру НоваяКартинка = ОбработкаКартинок.Повернуть(Картинка, 180)
(13) Спасибо, тоже попробую
(21) Возьму на заметку, спасибо…
(21) Этот вариант самый быстрый и удобный для меня…
Но вот заработало только когда в АдресМР3 указал абсолютный путь к файлу mp3, а из хранилища не получилось…
И еще — как бы узнать, что проигрывание файла завершилось? Как к html-полю подключить какое-нибудь событие для этой цели? Требуется проигрывать такой же (или другой) файл через некоторое время после окончания проигрывания.. Подскажете, куда рыть?