Twilio视频会议应用程序 - 音频处理

时间:2016-09-20 07:29:43

标签: javascript webrtc twilio web-audio actioncable

我们正在尝试使用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);
  });

我们在两个逻辑中使用了上述代码:

  1. 在本地处理音频,并使用操作电缆跨通道发送。
  2. 迭代参与者并处理音频流。
  3. 两者都有效,但应用程序崩溃了。

    如果我在任何时候出错,请更正。

0 个答案:

没有答案