Книга знаний

1С:Предприятие / Приемы программирования / Интернет-технологии

Включаем звук в 1С.

Как вывести звук в 1С8 интернет средствами.sikuda
Последняя редакция №0 от 14.01.14
URL: http://kb.mista.ru/article.php?id=926

Ключевые слова: Звук, Sound, Бум, Audio, Аудио


Пробуем вывести звук из HTML поля. Начнем работать с  тэгом audio. В интернете у всех уже современные браузеры и все работает. Но мы же будем звучать из 1С. Значит первое что нам надо – это воспроизвести звук в тонком клиенте. Так как поле HTML в 1С работает в режиме совместимости IE7, то мы воспользуемся старый тэгом для IE bgsound. Мы можем хранить звук в виде макетов двоичных данных sound_ball и использовать их внутри HTML поля. Код для управляемых форм:
&НаКлиенте
Процедура Звук(Команда)
    АдресЗвука = ПолучитьЗвук();
    
    html = "
    | <BODY scroll='no'>
    | <BGSOUND id='sound_think' balance=0 volume='-5000'></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>";
КонецПроцедуры

&НаСервере
Функция ПолучитьЗвук()
    // Для тонкого клиента
    ОбъектОбработка = РеквизитФормыВЗначение("Объект");
    Данные = ОбъектОбработка.ПолучитьМакет("sound_ball");
    Возврат ПоместитьВоВременноеХранилище(Данные)    
КонецФункции
Код для обычных форм Добавляем реквизит АдресЗвука для удаления временного файла.
Процедура ПриЗакрытии()
    УдалитьФайлы(АдресЗвука);
КонецПроцедуры

Процедура ЗвукНажатие(Элемент)
    
    АдресЗвука = ПолучитьЗвук();
    
    html = "
    | <BODY scroll='no'>
    | <BGSOUND id='sound_think' balance=0 volume='-5000'></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>";
    
    ЭлементыФормы.ball.УстановитьТекст(html);
КонецПроцедуры

Функция ПолучитьЗвук()
    //Для тонкого клиента
    Данные = ПолучитьМакет("sound_ball");
    Если НЕ ЗначениеЗаполнено(АдресЗвука) Тогда
        АдресЗвука = ПолучитьИмяВременногоФайла("mp3");
        Данные.Записать(АдресЗвука);
    КонецЕсли;
    АдресЗвукаНаСтранице = "file:///" + СтрЗаменить(АдресЗвука,"\","//");
    Возврат АдресЗвукаНаСтранице;    
КонецФункции

Описание | Рубрикатор | Поиск | ТелепатБот | Захваченные статьи | Установки | Форум
© Станислав Митичкин (Волшебник), 2005-2025 | Mista.ru

Яндекс.Метрика