import { SRTC } from '@seastart/srtc-web-sdk';
const srtc = new SRTC();
// Example: publish Canvas content as a video track
const canvas = document.querySelector<HTMLCanvasElement>('#my-canvas')!;
const ctx = canvas.getContext('2d')!;
// Draw content (an animated rectangle here as an example)
function draw() {
ctx.clearRect(0, 0, canvas.width, canvas.height);
ctx.fillStyle = `hsl(${Date.now() / 10 % 360}, 70%, 50%)`;
ctx.fillRect(50, 50, 200, 200);
requestAnimationFrame(draw);
}
draw();
// Capture the Canvas as a MediaStream (the parameter is the frame rate)
const canvasStream = canvas.captureStream(15);
const msVideoTrack = canvasStream.getVideoTracks()[0];
// Wrap it as an SDK track
const customVideoTrack = srtc.createLocalCustomVideoTrack(msVideoTrack);
// Local preview
customVideoTrack.addPlayView(document.querySelector<HTMLElement>('#preview')!);
// Publish
await srtc.publishLocalTrack(customVideoTrack, { desc: 'canvas video' });