在传出的 WebRTC 呼叫上添加音频延迟

Add Audio Delay on outgoing WebRTC call

我正在创建一个 Electron 应用程序,我想在 webrtc 调用中特意为传出音频添加延迟(最多 10 秒)以模拟音频延迟。

我试过将 playoutDelayHint 与 WebRTC 一起使用,但它非常不一致。我希望能够非常精确地控制时间延迟。

audioReceiver.playoutDelayHint = 1;
audioReceiver.jitterBufferDelayHint = 1;

我也尝试过使用 AudioDelay 节点,但它不起作用,根本没有延迟。

let audioContext = new AudioContext();
let audioSource = audioContext.createMediaStreamSource(canvasStream);
let audioDestination = audioContext.createMediaStreamDestination();

let delay = audioContext.createDelay(3)
delay.connect(audioContext.destination);

是否有任何其他选项或方法可以使上述选项生效?

我的解决方案是将音频延迟应用于传入流。 不是最优但它有效。

var audioContext = new AudioContext();
var source = audioContext.createMediaStreamSource(stream);

let audioDelay = audioContext.createDelay(10); // 10 seconds max delay
audioDelay.delayTime.value = 3 // Seconds delay

source.connect(audioDelay).connect(audioContext.destination)