我一直在尝试获取音频输入流(我的麦克风)并对其应用效果,例如音调移位,混响等。总有办法做到这一点,对我的代码进行哪些修改才能使我做这些东西?这是我的代码:
navigator.getUserMedia({audio: true}, function(stream) {
var ac = new AudioContext();
var audio = new Audio();
var microphone = ac.createMediaStreamSource(stream);
var dest = ac.createMediaStreamDestination();
microphone.connect(dest);
audio.srcObject = dest.stream;
audio.setSinkId(settings.output);
audio.play();
}, function (){console.warn("Error getting audio stream from getUserMedia")});
到目前为止,它正在将麦克风输出到特定的音频输出设备。预先感谢!
代替
microphone.connect(dest);
将麦克风连接到某些处理节点,例如:
let f = new BiquadFilterNode(ac);
let r = new ConvolverNode(ac, {buffer: reverbBuffer});
microphone.connect(f).connect(r);
r.connect(dest);
根据需要对此进行扩展以获得所需的效果。