Files
rrweb/docs/recipes/canvas.md
何遇 bac1d7b048 feat: add dataURLOptions parameter control canvas image format and quality (#967)
* feat: record add dataURLOptions parameter control canvas image format and quality

* 解决 build failed

* Update docs/recipes/canvas.md

* Apply formatting changes

* Update canvas-manager.ts

Fix the error caused when I resolved the merge conflict

Co-authored-by: Justin Halsall <Juice10@users.noreply.github.com>
Co-authored-by: Yun Feng <yun.feng@anu.edu.au>
Co-authored-by: Mark-Fenng <Mark-Fenng@users.noreply.github.com>
Co-authored-by: Yun Feng <yun.feng0817@gmail.com>
2022-09-17 12:43:43 +08:00

986 B
Raw Blame History

Canvas

Canvas is a special HTML element, and will not be recorded by rrweb by default. There are some options for recording and replaying Canvas.

Enable recording Canvas

rrweb.record({
  emit(event) {},
  recordCanvas: true,
});

Alternatively enable image snapshot recording of Canvas at a maximum of 15 frames per second

rrweb.record({
  emit(event) {},
  recordCanvas: true,
  sampling: {
    canvas: 15,
  },
  // optional image format settings
  dataURLOptions: {
    type: 'image/webp',
    quality: 0.6,
  },
});

Enable replaying Canvas

const replayer = new rrweb.Replayer(events, {
  UNSAFE_replayCanvas: true,
});
replayer.play();

Enable replaying Canvas will remove the sandbox, which may cause a potential security issue.

Alternatively you can stream canvas elements via webrtc with the canvas-webrtc plugin. For more information see canvas-webrtc documentation