2016-09-15 7 views
0

Я работаю с API веб-аудио в javascript. Часть моего текущего проекта включает в себя петлитель, мне нужно динамически менять начальную и конечную точки петлителя. Что работает.JS/Web Audio: Как я могу сразу перейти к loopStart, во время игры?

Но мне нужно место воспроизведения аудиофайла, чтобы перейти к начальной точке, когда я ее установил. Я работаю в поисковых системах и читаю спецификацию в течение нескольких дней, но я не могу найти ответ.

Я знаю, что вы можете установить его с помощью функции start(), но мне нужно изменить его, пока он уже играет. Спасибо!

+0

Вы спрашиваете, как инициировать событие для запуска start() сразу после изменения точек цикла? – William

+0

Да, я надеялся, что есть способ перескочить в новую точку, не создавая новый AudioBufferSource ... но, похоже, этого не происходит. Кажется, что очень много работы (не в строках кода, а в теории происходящего) просто изменить текущее место воспроизведения. –

ответ

1

Если я понимаю, что вы пытаетесь сделать, я думаю, что единственный способ сделать это - создать новый AudioBufferSource с использованием того же буфера. Отрегулируйте этот новый AudioBufferSource с теми же точками петли, что и оригинал, а затем позвоните start() с правильным временем начала и смещением.

+0

Вы правы. Во всех моих других аудиопрограммах был способ динамически менять текущее место воспроизведения. В API веб-аудио это, похоже, не так. Вам нужно перезапустить новый AudioBufferSource и запустить его в новой точке. Это кажется довольно неэффективным, хотя, возможно, я не получаю всю картину от других языков/библиотек. –

+1

Создание (и отбрасывание) источника AudioBufferSource должно быть очень легким; вы можете совместно использовать базовый AudioBuffer между узлами AudioBufferSource. –