WebRTC 不适用于 AudioContext

De *_*vis 5 javascript webrtc

我正在使用 WebRTC 制作音频聊天网站。我有一个问题。

当从对等方接收远程音频时。这不起作用(我听不到任何音频)

var audioContext = new AudioContext();
var audioStream = audioContext.createMediaStreamSource(e.stream);
audioStream.connect(audioContext.destination);
Run Code Online (Sandbox Code Playgroud)

虽然这有效

var audio2 = document.querySelector('audio#audio2');
audio2.srcObject = e.stream;
Run Code Online (Sandbox Code Playgroud)

我需要这样做的原因是因为我需要能够控制音频(效果、音量),据我所知,AudioContext 提供了这一点。但由于某种原因,它不起作用。有什么建议么?

谢谢你!

gue*_*314 5

.createMediaStreamSource()与使用.createGain()

var ctx = new AudioContext();
var source = ctx.createMediaStreamSource(stream);
var gainNode = ctx.createGain();
gainNode.gain.value = .5; 
source.connect(gainNode);
source.connect(ctx.destination);
Run Code Online (Sandbox Code Playgroud)

jsfiddle https://jsfiddle.net/tkw13bfg/2

或者,创建一个AudioNode, 使用.createGain()

var ctx = new AudioContext();
var audio = new Audio();
audio.srcObject = stream;
var gainNode = ctx.createGain();
gainNode.gain.value = .5;   
audio.onloadedmetadata = function() {
  var source = ctx.createMediaStreamSource(audio.srcObject);
  audio.play();
  audio.muted = true;
  source.connect(gainNode);
  gainNode.connect(ctx.destination);
}
Run Code Online (Sandbox Code Playgroud)