Publish any MediaStream to the room — not just the camera or microphone.
clickVideo / clickAudio call getUserMedia internally, so they can only
ever publish a real device. Anything else — a <canvas> capture, a <video>
element playing a file, a Web Audio destination, a processed or synthesised
track, a virtual camera — previously required monkey-patching
navigator.mediaDevices.getUserMedia around the call, which is racy and
leaks if the control throws. This publishes your stream directly.
The stream stays yours: stop its tracks when you are done, or call
stopProducing to tear the producer down first.
Publish any MediaStream to the room — not just the camera or microphone.
clickVideo/clickAudiocallgetUserMediainternally, so they can only ever publish a real device. Anything else — a<canvas>capture, a<video>element playing a file, a Web Audio destination, a processed or synthesised track, a virtual camera — previously required monkey-patchingnavigator.mediaDevices.getUserMediaaround the call, which is racy and leaks if the control throws. This publishes your stream directly.The stream stays yours: stop its tracks when you are done, or call stopProducing to tear the producer down first.