You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
25 lines
762 B
TypeScript
25 lines
762 B
TypeScript
const maxWidth = 1920;
|
|
const maxHeight = 1080;
|
|
|
|
const silence = () => {
|
|
const ctx = new AudioContext();
|
|
const oscillator = ctx.createOscillator();
|
|
const dst = oscillator.connect(ctx.createMediaStreamDestination());
|
|
oscillator.start();
|
|
return Object.assign((dst as any).stream.getAudioTracks()[0], { enabled: false });
|
|
};
|
|
|
|
const black = () => {
|
|
const canvas = Object.assign(document.createElement('canvas'), {
|
|
width: maxWidth,
|
|
height: maxHeight,
|
|
});
|
|
canvas.getContext('2d')?.fillRect(0, 0, maxWidth, maxHeight);
|
|
const stream = (canvas as any).captureStream();
|
|
return Object.assign(stream.getVideoTracks()[0], { enabled: false });
|
|
};
|
|
|
|
export const getBlackSilenceMediaStream = () => {
|
|
return new MediaStream([black(), silence()]);
|
|
};
|