1 / 1 / 0
Регистрация: 06.04.2022
Сообщений: 12
1

GODOT AudioStreamPlayer html5

24.05.2022, 08:03. Показов 1394. Ответов 4

Author24 — интернет-сервис помощи студентам
Добрый день!
Возникла проблема с проигрыванием звука в экспортированном экземпляре игры. Звук проигрывается с помощью ноды AudioStreamPlayer. Игру экспортирую в html5 и запускаю либо на локальном сервере, либо на на любом сервисе, который исполняет html код. Если во время игры свернуть браузер, сменить вкладку, сделать так, чтобы окно игры НЕ активно, то все процессы игры приостанавливаются, то есть: движение всех объектов не происходит, все таймеры приостановливаются. НО музыка продолжает играть. Я пытался обрабатывать Notification с фокусом, input handle с курсором, чтобы выключать музыку,но это не вариант, потому что если свернуть бразуер через alt+tab, находясь на вкладке с игрой, то фокус не уходит и ожидание input все равно происходит (при этом как и говорил ранее, все другие процессы, связанные с передвижением и таймером - приостанавливаются).
За что в такой ситуации можно зацепиться, чтобы выключать музыку?
Спасибо
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.05.2022, 08:03
Ответы с готовыми решениями:

Godot - звуки перемещения
Доброго времени суток всем участникам форума! Хочу узнать ваше мнение. Во время разработки игры на...

Cocos2d-x или Godot
Не могу определиться с игровым движком. Сначала cocos заинтересовал но у меня с ним много вопросов,...

Godot. Движение игрока
Добрый вечер всем. Пытаюсь сейчас делать движение персонажа. Передвижение вправо срабатывает как...

Вращение объекта мышью в Godot
Привет всем! Чтобы было короче: представьте себе Google Earth с максимально отдаленной планетой. Вы...

4
Just Do It!
3837 / 2283 / 636
Регистрация: 23.09.2014
Сообщений: 7,053
Записей в блоге: 2
25.05.2022, 09:18 2
Цитата Сообщение от DarkSlateGray Посмотреть сообщение
За что в такой ситуации можно зацепиться, чтобы выключать музыку?
поэкспериментировать с другими оповещениями,
например:
Код
NOTIFICATION_APP_PAUSED = 1015 --- Notification received from the OS when the app is paused.
0
1 / 1 / 0
Регистрация: 06.04.2022
Сообщений: 12
25.05.2022, 09:28  [ТС] 3
Пробовал все оповещения из доступных у объекта MainLoop. Такое ощущение, что аудио стрим запускается на более низком аппаратном уровне, потому что при деактивации окна приостанавливаются даже функции _process(delta) и _physics_process(delta).
0
Just Do It!
3837 / 2283 / 636
Регистрация: 23.09.2014
Сообщений: 7,053
Записей в блоге: 2
25.05.2022, 09:36 4
Цитата Сообщение от DarkSlateGray Посмотреть сообщение
аудио стрим запускается на более низком аппаратном уровне, потому что при деактивации окна приостанавливаются даже функции
стоп.
ваще ваше приложение может обработать хоть какое-нить оповещение в специальной для этого,
но кастомизированной процедуре?

если да, то в функции обработки в ручную отключить аудио с сохранением инфы об этом,
ну, а при поступления оповещения на возобновления mainloop,
проверить было ли отключение аудио, если было, то продолжить проигрывание звука.
0
1 / 1 / 0
Регистрация: 06.04.2022
Сообщений: 12
25.05.2022, 10:08  [ТС] 5
Конечно, например я выводил все оповещения, которые прилетают по объекту mainloop во встроенную функцию _notification(), и проблема в том, что туда прилетает только CURSOR_ENTERED / CURSOR_EXITED. Соответственно оповещения туда не прилетают в силу того, что приложение экспортировано под html5 и в браузере поведение меняется, то есть оповещения связанные с нажатием кнопки Close на Android, не прилетает.

Добавлено через 7 минут
Конечно, например я выводил все оповещения, которые прилетают по объекту mainloop во встроенную функцию _notification(), и проблема в том, что туда прилетает только CURSOR_ENTERED / CURSOR_EXITED. Соответственно другие оповещения туда не прилетают в силу того, что приложение экспортировано под html5 и в браузере поведение меняется, то есть оповещения связанные с нажатием кнопки Close на Android, не прилетает, либо события для этих оповещений не вызывается. То есть как говорил, если при открытой вкладке приложения перейти на другое окно с помощью alt+tab держа курсор на приложении, то оповещение с потерей фокуса не вылетает. И в итоге получается так, что именно в такой ситуации никаких оповещений не вылетает вообще.
1
25.05.2022, 10:08
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.05.2022, 10:08
Помогаю со студенческими работами здесь

Силует след за персонажем в GODOT
При перетаскивании с помощью мыши на сцене есть след Trail (Particles2D) силует за персонажем. А...

Поворот вектора в 3д пространстве в движке GODOT
Я пишу игру в движке GODOT. И мне требуется повернуть вектор импульса, действующего на объект в...

Использование мыши для прицела в 3д игре на GODOT
Как можно получить 3д координаты мыши? Или как ещё можно использовать мышь, для прицеливания в...

Как изменить репозиторий по дефолту, который стоит при импорте проекта в GODOT
Как изменить репозиторий по дефолту, который стоит при импорте проекта в GODOT? Я хочу...

Как презентации SWF флэш сайта перевести в HTML5 с сохранением эфектов ) Как правильно и полноценно Перевести SWF в HTML5
программа Sothink SWF Decompiler конвертирует SWF файл в HTML5 разбивая его на HTML и JS ...но она...

Правда ли, что Unreal - для профессионалов, Unity - для масс, а Godot - для самых отсталых?
Кто знает?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru