HelpF.pro

Как воспроизвести звуковой сигнал или проиграть звуковой файл в 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"));
КонецФункции

Опубликовано на сайте: https://HelpF.pro
Прямая ссылка: https://HelpF.pro/faq8/view/1846.html