Включаем звук в 1С. Ключевые слова: Звук, 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:///" + СтрЗаменить(АдресЗвука,"\","//");
Возврат АдресЗвукаНаСтранице;
КонецФункции |