All integrations were made following the Zoom Video SDK documentation.
I’m having some unsolved issues in the documentation.
Even if participants are in different subsessions, they can hear, view cameras and share screens from participants in another subsession.
In addition to inserting participants into different subsessions, is it necessary to take any other action so that they are in separate environments? The idea is that the participant can only hear, see the camera and share the screen of the participants in the same subsession.
I created a logic that, based on the group that a user has in my system, subsessions were created and when entering the session the participants were already inserted in them. For this to work I needed to implement a step by step that:
Opens all subsessions
Inserts the user into the subsession corresponding to the group with the same title
Below is more information about the versions and system I am using:
Video SDK version: 1.12.5
React version: 18
Next JS version: 14.2.2
OS: Windows 11
Browser: Google Chrome
Browser Version 129.0.6668.70 (Official Build) (64 bits)
From the phenomenon you described, it appears that participants were only assigned to the subsession but did not join it.
In the openSubsessions method, there is an option to control whether participants automatically enter the subsession after being assigned, with the default value set to false. In this case, participants assigned to a subsession will receive the subsession-invite-to-join event, and in the callback for handling this event, the joinSubsession method can be called to join the assigned subsession.
Of course, if automatic join into the subsession is needed, you can specify the isAutoJoinSubsession option as true in the openSubsessions method.
Hello! I applied the suggested fixes but the interaction between subrooms still happens.
I looked in the documentation and couldn’t find a way to confirm if the user actually entered the subroom. Is there a way to check this?
Can the host communicate with all users in the session and also those in subsessions? I ask because in my tests, users in a subsession cannot hear the host.
Thank you very much for your feedback @binesh.dhami !
With this command, will all users in all subsessions be able to hear each other? Or will they only hear the host?
Thanks for the feedback!
The start Broadcast Voice function worked perfectly, would it be possible to do the same to display the camera and the screen being shared by the host?
Thanks for the feedback!
By setting isAutoJoinSubsession to true I was able to make it work. In my code there was a validation that was getting in the way of this implementation. When I fixed it, everything started working.
Hello! I found the shareToSubsession function in the documentation. I believe that with it I will be able to display screen sharing with users who are in subsessions. However, I did not find many details on how to use the return of this function.
I am getting the following error when calling this function:
{
"type": "INVALID_PARAMETERS",
"reason": "Expected to accept HTMLCanvasElement, but actual it is BA"
}
Is there a way to control whether the container that should display the video is a canvas?
This is a sender-side method that can be specified in the stream.startShareScreen method or enabled after starting screen sharing using the media.shareToSubsession method.
As for the INVALID_PARAMETERS error you mentioned, it may be thrown by another method, since the media.shareToSubsession method does not require any parameters.
Hello!
Can you explain to me how broadcasting works? I would also like to better understand how the client and stream work. By understanding these three concepts better, I believe I can find a solution to this problem, as I don’t know how to use the feedback that Zoom sends me to correctly render the camera and the host’s screen sharing.
We provide several approaches for the host to broadcast to subsessions:
Text Messages: Use subsessionClient.broadcast(message) for text-only communication.
Audio Voice: Use subsessionClient.startBroadcastVoice() to start and subsessionClient.stopBroadcastVoice() to stop broadcasting audio. This feature is available only when the host is in the main session.
Screen Sharing: Use media.shareToSubsession to share the screen. This feature is available only when the host is in the main session.
Thanks for the feedback!
I’m trying to use media.shareToSubsession but without any results. I’m not getting an error or success response when the method is called.
It’s a method for switching functionality. It allows you to control whether to share the screen content to the subsession after initiating screen sharing.
Therefore, the prerequisite is that the host must first share the screen using stream.startScreenShare.
Could you help check whether the stream.startScreenShare method was called first?