Description
Sometimes sporadically when attempting to join a meeting on mobile we get a message in the console (note that the console doesn’t show this message as an error, Chrome is filtering it as “info”):
video handle is not ready! blob:https://example.com/11e1bd00-f55d-41b0-b82e-673d81388dd9:1
The video connection never starts for the user however audio does
Troubleshooting Routes
Disconnecting and reconnecting the user sometimes fixes the problem. As does refreshing. Video preview still works while in this state if we open our applications interface to test/select your video input device.
Full Versions
SDK Version: 1.9.8
SDK Type: Video SDK for Web
Mobile Device: Android
Android Version: 10
Browser: Google Chrome
Chrome Version: 120.0.6099.43
How To Reproduce
join meeting with VideoSDK.createClient().join()
check if isRenderSelfViewWithVideoElement() and call stream.startVideo() on either video element or canvas depending on the function check
start audio with stream.startAudio()
get the message in console (sometimes, sometimes it works correctly)
Can you describe what happens when this log appears?
This is a status log we print to the console and it doesn’t affect video rendering.
When the video stream arrives before the video handler is ready, we output this log. But don’t worry, we handle this situation with proper error handling.
When we see this message in the log nothing happens after. The message repeats over and over. No video output starts at all, either self-camera or remote participant.
Hey, @vic.yang
I have same error.
On my localhost connection works fine. But on dev server I have same error video handle is not ready!
On local and dev server there is same code.
Refused to compile or instantiate WebAssembly module because ‘unsafe-eval’ is not an allowed source of script in the following Content Security Policy directive
It seems that the CSP policy on your site prevents the video from working. Could you refer to our documentation for details?
I see you’ve set the Cross-Origin-Embedder-Policy . I assume you want to enable SharedArrayBuffer , but you’re missing the Cross-Origin-Opener-Policy setting, which needs to be set to ‘same-origin’ to enable SharedArrayBuffer .
Currently, the default shared audio solution requires SharedArrayBuffer.
There are two workarounds:
Enable SharedArrayBuffer, you can refer to this documentation
Thank you for sharing the code snippet related to this issue.
This might be a known limitation where the video-player element returned by stream.attachVideo does not have an initial width and height. I suggest you add a class to this element and define the styles within this class.
.video-cell {
aspect-ratio: 16/9;
width: 300px;
}
let userVideo = await zoomSession.attachVideo(zoomVideo.getCurrentUserInfo().userId, RESOLUTION)
userVideo.classList.add('video-cell');
@vic.yang
Yes it worked. Consider add more readable place in doc(or maybe I miss it). I have that snipped in my css. However as for tag and might not (do not why) apply to fresh new added element.
After dynamic change works fine.
Thanks for help