Нет изменений в объеме вывода с помощью createGain

Я хочу контролировать громкость входящего аудиопотока webRTC. Код выглядит так:

...
audioContext=new AudioContext;
gainFilter=audioContext.createGain(),
jsnode=audioContext.createScriptProcessor(512,1,1); // used for VU-Meter

source=audioContext.createMediaStreamSource(stream);
source.connect(gainFilter); 
gainFilter.connect(jsnode);
jsnode.connect(audioContext.destination);

...

// when volume slider is moved
gainFilter.gain.value=volume;
...

Основная идея работает: я слышу звук, я вижу в своем VU-метре, что на громкость сигнала влияет фейдер, который определяет настройку gainFilters. Но выходной сигнал, который я слышу через динамики, никогда не меняется по громкости.

Я не понимаю, что не так: это влияет на аудиоданные, видимые процессором сценария. Когда я перемещаю фейдер на самый низкий уровень громкости, громкость звука правильно показывает отсутствие пика. Тем не менее, я слышу звук.

0 ответов

Другие вопросы по тегам