我想做的是从一台 mediasoup 服务器接收声音。混合它,然后将其发送到另一台服务器。这似乎是一项简单的任务,但几天来我一直在努力解决它。
我怎么做?我将收到的音频放在<audio>
标签中 这是我的代码
let audioContext = new (window.AudioContext || window.webkitAudioContext)();
const audioElement = document.getElementById(this.consumer.id)
const incomingSource = audioContext.createMediaElementSource(audioElement);
this.filter = audioContext.createBiquadFilter();
this.filter.type = "lowpass";
this.filter.frequency.value = 1000;
const outgoingStream = new MediaStreamAudioDestinationNode(audioContext);
incomingSource.connect(this.filter);
this.filter.connect(outgoingStream);
this.outgoingTrack = outgoingStream.stream.getAudioTracks()[0];
然后我通过 mediasoup 使用
this.sendTransport.produce({track: this.outgoingTrack})
我想我正在做的是获取我收到的声音,然后将过滤器连接到这个声音,然后将过滤器连接到我想要转发的流,最后发送轨道。
但这不起作用,所以显然我做错了什么。当我在没有这样的过滤器的情况下这样做时:
let audioContext = new (window.AudioContext || window.webkitAudioContext)();
const audioElement = document.getElementById(this.consumer.id)
const incomingSource = audioContext.createMediaElementSource(audioElement);
const srcObject = incomingSource.mediaElement.srcObject;
const outgoingTrack1 = srcObject.getAudioTracks()[0]
它完美无缺,但它只是转发声音而不对其进行任何更改。
那么如何混合这种声音呢?