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()]);
 | |
| };
 |