我们正在尝试使用twilio javascript SDK和后端的rails创建视频会议应用程序。我们遇到的要求是在讲话参与者之间自动切换。我们一次只能处理一个传入的音频流。
这里附上了代码。
partcipant.media.mediaStreams.forEach(function(mediaStream) {
var audioCtx = new(window.AudioContext)() || new(window.webkitAudioContext)();
var source = audioCtx.createMediaStreamSource(mediaStream);
var script = audioCtx.createScriptProcessor(2048, 1, 1);
source.connect(script);
script.connect(audioCtx.destination);
script.onaudioprocess = function(event) {
var input = event.inputBuffer.getChannelData(0);
var i;
var sum = 0.0;
for (i = 0; i < input.length; ++i) {
sum += input[i] * input[i];
}
var instant = Math.sqrt(sum / input.length);
if (instant > 0.2) {
console.log(participant.name + ' is speaking!');
}
}.bind(participant);
});
我们在两个逻辑中使用了上述代码:
两者都有效,但应用程序崩溃了。
如果我在任何时候出错,请更正。