|
0
Shalun
naïve
01.10.26
✎
19:19
|
Всем привет! Второй день долблюлюсь с воспроизведением звука, но сцука молчит как партизан. Сразу скажу, опыта со звуком нет, по сему сильно не пеняйте.
Что сделал: В управляемую форму добавил реквизит АудиоПлеерHTML с типом Строка и элемент формы ПолеHTMLДокумента, связанный с этим реквизитом.
Создал макет двоичные данные, и загрузил в него звук.
Далее код:
&НаСервере
Функция ПолучитьЗвукиВФорматеBase64()
Результат = Новый Структура;
ДД_Успех = ПолучитьОбщийМакет("ЗвукУспешногоСканирования");
ДД_Ошибка = ПолучитьОбщийМакет("ЗвукОшибкиСканирования");
Результат.Вставить("Успех", Base64Строка(ДД_Успех));
Результат.Вставить("Ошибка", Base64Строка(ДД_Ошибка));
Возврат Результат;
КонецФункции
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
ЗвуковыеСемплы = ПолучитьЗвукиВФорматеBase64();
ЗвукУспехаBase64 = ЗвуковыеСемплы.Успех;
ЗвукОшибкиBase64 = ЗвуковыеСемплы.Ошибка;
АудиоПлеерHTML =
"<!DOCTYPE html>
|<html>
|<head>
| <meta charset='utf-8'>
| <script>
| function playSound(base64Data, mimeType) {
| try {
| var audio = new Audio('data:' + mimeType + ';base64,' + base64Data);
| audio.play();
| } catch(e) {
| console.error('Audio playback error:', e);
| }
| }
| </script>
|</head>
|<body style='margin:0; padding:0; background:transparent;'></body>
|</html>";
КонецПроцедуры
&НаКлиенте
Процедура ВоспроизвестиЗвуковойСигнал(ТипСигнала = "Успех")
СтрокаBase64 = ?(ТипСигнала = "Успех", ЗвукУспехаBase64, ЗвукОшибкиBase64);
МеткаВремени = Формат(ТекущаяУниверсальнаяДатаВМиллисекундах(), "ЧГ=0");
АудиоПлеерHTML =
"<!DOCTYPE html>
|<html>
|<head><meta charset='utf-8'></head>
|<body style='margin:0; padding:0; background:transparent;'>
| <!-- Timestamp: " + МеткаВремени + " -->
| <audio autoplay='autoplay'>
| <source src='data:audio/mp3;base64," + СтрокаBase64 + "' type='audio/mpeg'>
| </audio>
|</body>
|</html>";
КонецПроцедуры
В общем, ошибки никакой не всплывает, но звука нет. Подскажите, что тут не так? Скажу сразу, скрипт взят с интернета, сам не пишу, по этому не спрашивайте что там зачем. Лучше подскажите что нужно делать? Заранее благодарю за конструктивные ответы!
|
|