2016-02-24 4 views
0

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

Проблема, узел усиления volume, кажется, не работает, как и следовало ожидать. Из того, что я понимаю, коэффициент усиления 0 отключен, а коэффициент усиления 1 составляет 100% объема. Но в этом случае передача 0 в качестве значения gain воспроизводит звук только приглушенным, а не полностью отключает его (я надеюсь, что правильно объясню).

Что я делаю неправильно? Может ли кто-нибудь помочь?

+0

Почему вы подключаете осциллятор как к узлу тома, так и к context.destination. Попробуйте удалить второе соединение. – jaket

+0

@jaket, вы правы. Благодаря! Если вы опубликуете это как ответ, я соглашусь с ним. – Cliff

ответ

1

Проблема заключается в том, что узел осциллятора подключается как к узлу усиления, так и к целевому узлу.

   +---------------+ 
       |    | 
oscillator ----+----> gain ----+---> destination 

Таким образом, даже если узел усиления ослаблен до 0, есть еще один путь к месту назначения. Проблема может заключаться в удалении второй линии oscillator.connect.

oscillator.connect(volume); 
//oscillator.connect(context.destination); 
Смежные вопросы