我想控制传入的 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 表正确显示没有峰值。不过,我可以听到音频。