TelegramPWA/src/lib/secret-sauce/blacksilence.ts
2023-02-08 00:48:45 +01:00

19 lines
769 B
TypeScript

// https://blog.mozilla.org/webrtc/warm-up-with-replacetrack/
export const silence = (ctx: AudioContext) => {
const oscillator = ctx.createOscillator();
const dst = oscillator.connect(ctx.createMediaStreamDestination());
oscillator.start();
return new MediaStream([Object.assign((dst as any).stream.getAudioTracks()[0], { enabled: false })]);
};
export const black = ({ width = 640, height = 480 } = {}) => {
const canvas = Object.assign(document.createElement('canvas'), { width, height });
const ctx = canvas.getContext('2d');
if (!ctx) throw Error('Cannot create canvas ctx');
ctx.fillRect(0, 0, width, height);
const stream = canvas.captureStream();
return new MediaStream([Object.assign(stream.getVideoTracks()[0], { enabled: false })]);
};