Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Синхронизация звука c движением на странице (https://javascript.ru/forum/misc/85529-sinkhronizaciya-zvuka-c-dvizheniem-na-stranice.html)

magnus-crank 06.10.2023 20:02

Синхронизация звука c движением на странице
 
Пишу небольшую игру. Нужно синхронизировать звук с движениями.
Если использовать Audio, звук запаздывает примерно на 250 ms.
Если AudioBufferSourceNode - на 200ms. Загружаю звуки заранее.
Я могу поставить шедулер и заряжать звук заранее, но это как-то несерьёзно. Тем более, что задержка может в других условиях быть другой, и интервал движения меньше 200ms.
Сам звук короткий, 50ms.

Примерно так:
let ss = actx.createBufferSource();
    ss.buffer = SndSplash;
    ss.connect(actx.destination);                                    
    ss.start(0);
    let timer = setTimeout(step, 200);

А хочется 100ms.
Если в start задать время, то звук произойдёт с задержкой от назначенного времени

Чего я не понимаю, и как мне построить синхронизацию звука и движения?

magnus-crank 06.10.2023 20:37

Более того, если я настраиваю отрисовку движения по событию onended, звук ухитряется воспроизводиться ПОСЛЕ отрисовки, то есть событие onended может произойти до того, когда звук реально закончится воспроизводится.

magnus-crank 06.10.2023 20:47

Вот, умным людям задал вопрос и сразу получил ментальный ответ.
Вопрос снимается, тестировал на виртуальной машине и совсем об этом забыл. Задержка связана с пробросом звука на физическое устройство.

Ура, всё работает.


Часовой пояс GMT +3, время: 04:40.