如何从 webrtc 视频通话中获取本地音频帧?

时间:2021-06-24 07:41:46

标签: javascript webrtc

使用 webrtc 技术,我可以进行视频通话,现在我必须对此进行一些自定义。我想获取本地音频和视频帧并对其进行控制台。我能够使用画布来控制视频帧。但不知道如何捕捉音频帧。

getUserMedia({ 音频:假, 视频:真实);

var processor = {
  timerCallback: function() {
    if (this.video.paused || this.video.ended) {
      return;
    }
    this.computeFrame();
    var self = this;
    setTimeout(function () {
      self.timerCallback();
    }, 16); // roughly 60 frames per second
  },

  doLoad: function() {
    this.video = document.getElementById("my-video");
    this.c1 = document.getElementById("my-canvas");
    this.ctx1 = this.c1.getContext("2d");
    var self = this;

    this.video.addEventListener("play", function() {
      self.width = self.video.width;
      self.height = self.video.height;
      self.timerCallback();
    }, false);
  },

  computeFrame: function() {
    this.ctx1.drawImage(this.video, 0, 0, this.width, this.height);
    var frame = this.ctx1.getImageData(0, 0, this.width, this.height);
    var l = frame.data.length / 4;

    for (var i = 0; i < l; i++) {
      var grey = (frame.data[i * 4 + 0] + frame.data[i * 4 + 1] + frame.data[i * 4 + 2]) / 3;

      frame.data[i * 4 + 0] = grey;
      frame.data[i * 4 + 1] = grey;
      frame.data[i * 4 + 2] = grey;
    }
    this.ctx1.putImageData(frame, 0, 0);

    return;
  }
};

var frame = this.ctx1.getImageData(0, 0, this.width, this.height); 这就是我获得视频帧的方式。有人也可以帮我控制音频帧吗。

0 个答案:

没有答案
相关问题