Javascript Twilio视频会议应用程序-音频处理
我们正在尝试在后端使用javascript SDK和rails创建一个视频会议应用程序。我们满足的要求是在发言参与者之间自动切换。我们一次只能处理一个传入的音频流 在此附上代码Javascript Twilio视频会议应用程序-音频处理,javascript,webrtc,twilio,web-audio-api,actioncable,Javascript,Webrtc,Twilio,Web Audio Api,Actioncable,我们正在尝试在后端使用javascript SDK和rails创建一个视频会议应用程序。我们满足的要求是在发言参与者之间自动切换。我们一次只能处理一个传入的音频流 在此附上代码 partcipant.media.mediaStreams.forEach(function(mediaStream) { var audioCtx = new(window.AudioContext)() || new(window.webkitAudioContext)(); var source =
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);
});
participant.media.mediaStreams.forEach(函数(mediaStream)){
var audioCtx=new(window.AudioContext)(| | new(window.webkitadiocontext)();
var source=audioCtx.createMediaStreamSource(mediaStream);
var script=audioCtx.createScriptProcessor(2048,1,1);
source.connect(脚本);
script.connect(audioCtx.destination);
script.onaudioprocess=函数(事件){
var input=event.inputBuffer.getChannelData(0);
var i;
var总和=0.0;
对于(i=0;i0.2){
console.log(participant.name+'正在讲话!');
}
}.约束(参与者);
});
我们在两种逻辑中使用了上述代码: