Canvas.captureStream () не существует в Angular 8 - PullRequest
0 голосов
/ 27 марта 2020

Я пытаюсь отправить содержимое холста HTML в виде потока, используя webrt c.

В чистом виде HTML + JS я могу использовать Canvas.captureStream(), чтобы получить поток вывода, кажется, я не могу найти способ сделать это, используя Angular 8. Код, который я использую:

  @ViewChild('canvas', {static: true})
  canvas: ElementRef<HTMLCanvasElement>;

  private canvasContext: CanvasRenderingContext2D;

  ngOnInit() {
    this.setupWebRtc();
    this.canvasContext = this.canvas.nativeElement.getContext('2d');
  }

  draw() {
    if (this.drawOnTop) {
      this.canvasContext.fillStyle = '#27bae7';
      this.canvasContext.fillRect(0, 100, this.canvas.nativeElement.width, 50);

      // Trying to get an output stream
      let  streamdata =  this.canvas.nativeElement.captureStream();
      console.log(streamdata);
   }

Использование canvas.nativeElemet или canvasContext не показалось чтобы помочь, так как оба не имеют функции captureStream ().

Я думал об использовании canvas.nativeElement.toDataURL();, но это кажется плохим подходом.

Я хотел бы получить некоторые предложения.

1 Ответ

0 голосов
/ 27 марта 2020

Похоже, решение было простым приведением к <Any>. То есть это была проблема с печатанием. Я использовал:

const  streamdata = (this.canvas.nativeElement as any).captureStream();

Чтобы получить поток.

...