|
Воспроизведение звука HTML | ☑ | ||
|---|---|---|---|---|
|
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>"; КонецПроцедуры В общем, ошибки никакой не всплывает, но звука нет. Подскажите, что тут не так? Скажу сразу, скрипт взят с интернета, сам не пишу, по этому не спрашивайте что там зачем. Лучше подскажите что нужно делать? Заранее благодарю за конструктивные ответы! |
|||
|
1
Волшебник
01.10.26
✎
19:30
|
если это мобильный клиент (ТСД, например), то используйте:
СредстваМультимедиа.ВоспроизвестиАудио(...) или даже СредстваМультимедиа.ВоспроизвестиТекст("Марка ОК") |
|||
|
2
sikuda
01.10.26
✎
19:38
|
(0) Статью десять лет назад написал, добрые люди уже добавил беслатную обработочку для старждущих и тонкости описали, но нет лень матушка у Вас?
https://infostart.ru/1c/tools/1259789/ |
|||
|
3
Fragster
гуру
01.10.26
✎
21:02
|
с видео была тема, что autoplay в браузере срабатывал только "после первого интерактивного действия со страницей", может с аудио примерно то же самое
|
|||
|
4
Shalun
naïve
02.10.26
✎
11:35
|
Парни, спасибо за подсказки! Уточню, работа на тонком клиенте. С HTML не разобрался, нашел другой рабочий метод:
spVoice = Новый COMОбъект("SAPI.SpVoice"); spfStream = Новый COMОбъект("SAPI.SpFileStream"); spfStream.Open(АдресФайла); spVoice.SpeakStream(spfStream); spfStream.Close(); Вроде работает, но воспроизводит стерео файл в моно режиме. Кто подскажет, как воспроизвести стерео? |
|||
|
5
Волшебник
02.10.26
✎
11:48
|
(4) Это прямо критично важно для учёта?
|
|||
|
6
Web00001
02.10.26
✎
18:10
|
(5)Кладовщик берет расходник и идет на склад собирать товар. Что то там собрал выставил на плафторму. Перед тем как упаковать и перевести расходник в статус "собрано" он пикает каждую позицию. Бегать к монитору, смотреть как изменилась циферка в табличке после каждого сканирования вообще не вариант. Зато если звук орет ошибкой и моргает красным сразу все понятно. Или просто инвентаризация, чел ходит со сканером по складу и проверяет все этикетки. Если отсканировалось то, чего быть не должно, или отсканировалось не верно, звук соориентирует. Да для учета бывает нужно.
|
|||
|
7
Shalun
naïve
02.10.26
✎
19:23
|
(5) Да, критично. У меня система обрабатывает 2 рабочих места, по этому для одного РМ левый канал, для другого РМ - правый.
|
|||
|
8
Волшебник
02.10.26
✎
19:25
|
(6) Я про стерео спрашивал.
(7) Понял, что критично |
|||
|
9
Сергиус
02.10.26
✎
22:17
|
||||
|
10
Сергиус
02.10.26
✎
22:18
|
+(9)Код на основе вашего, только элемент Поле HTML на форме обязательно должен иметь Видимость = Истина, иначе не работает.
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |