Как воспроизвести звуковой сигнал или проиграть звуковой файл в 1С? Частенько бывает, что нужно оповестить или обратить внимание пользователя на оповещение звуком, вот несколько решений:
Стандартный вариант:
Синтаксис: Сигнал()
Описание: Воспроизводит звуковой сигнал. Устройство, воспроизводящее звук, а также характер звукового сигнала зависят от программно-аппаратного состава компьютера и звуковых установок ОС.
Недоступен на сервере 1С:Предприятие. Не используется в модуле внешнего соединения.
Код 1C v 8.3 &НаКлиенте
Процедура Команда(Команда)
Сигнал();
КонецПроцедуры
С использованием внешних компонент:
Код 1C v 8.х // Способ №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 = Путь;
Исключение
КонецПопытки;
КонецПроцедуры
// Способ №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.onload = function(){
| PlaySound();
| }
| </script>
| </BODY>
| </HTML>";
КонецПроцедуры
&НаСервере
Функция ПолучитьАдресФайла()
Возврат ПоместитьВоВременноеХранилище(Обработки.ЗвукВ1С.ПолучитьМакет("sound"));
КонецФункции
Категория:
Полезные, Универсальные Функции