Как проиграть звуковой файл или воспроизвести звуковой сигнал в программе 1С?
Частенько бывает, что нужно оповестить пользователя или обратить его внимание на что-либо, используя звуковой сигнал. В данной публикации описано несколько вариантов активации звука в 1С: от стандартного до не самых тривиальных способов.
1. Стандартный (штатный) вариант использования системы звуковых сигналов
Синтаксис: Сигнал()
Данная функция не принимает никакие дополнительные параметры, а просто воспроизводит системные звуковые сигналы программ 1С. При этом характер и длительность звука может также зависеть от программно-аппаратного состава ПК и звуковых установок ОС.
Этот способ недоступен на сервере 1С:Предприятие 8 и не используется в модуле внешнего соединения устройств.
2. Код 1C v 8.3
С подключением внешних компонент в коде 1C v 8.3 (с помощью Speech API) можно реализовать голосовое воспроизведение какого-либо текста (функция «Speak», параметр — строка текста). Сама технология поддерживает 26 языков, включая русский, однако для его поддержки необходимо скачивать и устанавливать специальную библиотеку. На сегодняшний день пока только так.
3. Поле HTML документа
И еще один способ — при помощи «bgsound» – html-тега в коде. На форме должен быть элемент «Поле HTML документа». Причем этот элемент должен быть именно виден на форме, т.к. звук не воспроизводится, если скрыть его (Видимость=Ложь).
Сама же реализация выглядит следующим образом:
В примере подразумевается, что существует макет с типом двоичные данные, в котором и храниться звуковой файл, а на форме имеется элемент «Поле HTML документа».
Смотрите также:
Электронный учебник по программированию в 1С
Рекомендации по изучению программирования 1С с нуля
Игра "Кто хочет стать миллионером?" с вопросами на определенную тематику (язык программирования JavaScript, английские, немецкие, французские, испанские, португальские, нидерландские, итальянские слова, электробезопасность, промышленная безопасность, бокс и т.п.), написанная на 1С
Программирование в 1С 8.3 с нуля — краткий самоучитель
Комплексная подготовка программистов 1С:Предприятие 8.2
Сайты с уроками программирования и со справочниками
Youtube-каналы с уроками программирования
Сайты для обучения программированию
Лекции и уроки
1. Стандартный (штатный) вариант использования системы звуковых сигналов
Синтаксис: Сигнал()
Данная функция не принимает никакие дополнительные параметры, а просто воспроизводит системные звуковые сигналы программ 1С. При этом характер и длительность звука может также зависеть от программно-аппаратного состава ПК и звуковых установок ОС.
Этот способ недоступен на сервере 1С:Предприятие 8 и не используется в модуле внешнего соединения устройств.
2. Код 1C v 8.3
&НаКлиенте Процедура Команда(Команда) Сигнал(); КонецПроцедуры
С подключением внешних компонент в коде 1C v 8.3 (с помощью Speech API) можно реализовать голосовое воспроизведение какого-либо текста (функция «Speak», параметр — строка текста). Сама технология поддерживает 26 языков, включая русский, однако для его поддержки необходимо скачивать и устанавливать специальную библиотеку. На сегодняшний день пока только так.
// Способ №1 файл = "C:\1.wav"; Скрипт = Новый COMОбъект("MSScriptControl.ScriptControl"); Скрипт.Language="vbscript"; Скрипт.AddCode(" |Function Main() |Set oVoice = CreateObject(""SAPI.SpVoice"") |set oSpFileStream = CreateObject(""SAPI.SpFileStream"") |oSpFileStream.Open """+файлз+""" |oVoice.SpeakStream oSpFileStream |End Function"); Скрипт.Run("Main");
// Способ №2 файлз = "C:\1.wav"; oVoice = Новый COMObject("SAPI.SpVoice"); oSpFileStream = Новый COMObject("SAPI.SpFileStream"); oSpFileStream.Open(файлз); oVoice.SpeakStream(oSpFileStream); oSpFileStream.Close();
// Способ №3 файлз = "C:\1.wav"; DynamicWrapper = Новый COMОбъект("DynamicWrapperX"); DynamicWrapper.Register("winmm.dll", "sndPlaySoundA", "i=su"); DynamicWrapper.sndPlaySoundA(файлз, 1);
// Способ №4 // Проигрыватель - это ActiveX компонента "Windows Media Player" Процедура КнопкаВыполнитьНажатие(Кнопка) ПроигратьЗвук("D:\Звуки\123.wav"); КонецПроцедуры Процедура ПроигратьЗвук(Путь) Попытка ЭлементыФормы.Проигрыватель.settings.autostart = Истина; ЭлементыФормы.Проигрыватель.settings.volume = 100; ЭлементыФормы.Проигрыватель.URL = Путь; Исключение КонецПопытки; КонецПроцедуры
3. Поле HTML документа
И еще один способ — при помощи «bgsound» – html-тега в коде. На форме должен быть элемент «Поле HTML документа». Причем этот элемент должен быть именно виден на форме, т.к. звук не воспроизводится, если скрыть его (Видимость=Ложь).
Сама же реализация выглядит следующим образом:
/ Способ №5 // при помощи html-тега bgsound, на форме должен быть элемент Поле HTML документа &НаКлиенте Процедура ВоспроизвестиMP3() мФайл = ПолучитьАдресФайла(); ПолеHTML = " | <html> | <BODY scroll='no'> | <BGSOUND id='sound_think' balance=0 volume='-1000'></bgsound> | <div id=paperRaphael></div> | <script> | function PlaySound() { | if (!window.HTMLAudioElement) { | document.all.sound_think.volume=0; | document.all.sound_think.src = '"+мФайл+"'; | } | } | window.onl oad = function(){ | PlaySound(); | } | </script> | </body> | </html>"; &НаСервере Функция ПолучитьАдресФайла() Возврат ПоместитьВоВременноеХранилище(Обработки.ЗвукВ1С.ПолучитьМакет("sound")); КонецФункции
В примере подразумевается, что существует макет с типом двоичные данные, в котором и храниться звуковой файл, а на форме имеется элемент «Поле HTML документа».
Смотрите также:
Электронный учебник по программированию в 1С
Рекомендации по изучению программирования 1С с нуля
Игра "Кто хочет стать миллионером?" с вопросами на определенную тематику (язык программирования JavaScript, английские, немецкие, французские, испанские, португальские, нидерландские, итальянские слова, электробезопасность, промышленная безопасность, бокс и т.п.), написанная на 1С
Программирование в 1С 8.3 с нуля — краткий самоучитель
Комплексная подготовка программистов 1С:Предприятие 8.2
Сайты с уроками программирования и со справочниками
Youtube-каналы с уроками программирования
Сайты для обучения программированию
Лекции и уроки