在传出的 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)
我正在创建一个 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)