0

我想做的是从一台 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]

它完美无缺,但它只是转发声音而不对其进行任何更改。

那么如何混合这种声音呢?

4

0 回答 0