首页 > 解决方案 > 使用像素操作时 Safari 上的黑屏

问题描述

我正在使用两层的画布,一层在另一层之上。我正在从视频中获取视频,我正在尝试在画布中使用 drawImage 获取流,并且该视频来自另一个对等方,因此它将在媒体流中并且我正在使用 draw Image,我明白了我的画布中的媒体流。我正在将此画布设置为透明度。为了那个原因

  passctx.drawImage($this, 0, 0);
  var imageData = passctx.getImageData(0, 0, canvas1.width, canvas1.height);
  var data = imageData.data;

  var removeBlack = function () {
      for (var i = 0; i < data.length; i += 4) {
          f (data[i] + data[i + 1] + data[i + 2] <10) {
              data[i + 3] = 0; // alpha
          }
      }
      passctx.putImageData(imageData, 0, 0);
  };
  //removing the alpha channel from the canvas
  removeBlack();[enter image description here][1]

这适用于 Chrome、Opera 和 Firefox,这些都只接收没有黑屏的画布中的对象/图表,但在 safari 上却没有,它仍然返回带有黑屏的媒体流。帮助将不胜感激。

在此处输入图像描述

标签: canvaswebrtcpixelimage-manipulationmediastream

解决方案


推荐阅读