I am not 100% sure, but I think startVideo() needs to be called on main thread.
Try call it outside of connection-change.
I think the example needs to be updated. If you see the actual function, startVideo(option?: CaptureVideoOption): ExecutedResult.
As you see, it doesn’t take canvas or video. it takes cameraId, captureHeight and captureWidth as option.
Actual rendering is happening on renderVideo() call, which as already mention above, you would try to call it on main thread.
After debugging a bit, I see that nothing happens after this.stream.renderVideo, even if I try to do console.log. It seems that it blocks the executions and not throwing any error.
I think you still needs to wait for connection-change to call getMediaStream(). What I can suggest is to create a button to enable/disable camera, and try to call startVideo() and renderVideo() using the button.