我想控制传入的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的设置。但是我通过扬声器听到的输出量从未改变过。
我不明白错误:脚本处理器看到的音频数据会受到影响。当我将推子移动到最低音量时,vu表正确显示没有峰值。不过,我可以听到音频。