Creating a gridview for multiple participants

In my Android app I would like to create a meeting with multiple participants. By default, all the participants would show up in a gridview. At any time during the meeting, a user can press a button in the app that would make their video take up the entire screen. When they are done talking, they press the button again to relinquish control and their video reverts to being one of the gridview videos. When anyone is talking in full screen mode with only them in the video, they see the gridview on their device but they never see themselves in the gridview. So if the meeting has 3 people, only two of the other participants ever show up on the user’s screen. However, I would still like to have a way to let a user decide if they really do want to see themselves and enable this. Some people would simply prefer not to see themselves talking. Also, it’s kind of unnecessary and by leaving themselves out, the screen has more room for the other participants.

I also need to record the entire meeting. The recording needs to be done from the device where the meeting is initially hosted. It needs to record the gridview. However, it needs to include the video of the host even when the host doesn’t want to see their own self in the meeting.

Going through the documentation, I could not see any clear indication about how a gridview is supported let alone whether I can accomplish all the above. The docs indicate that each user has a canvas and a VideoView is applied to the canvas. So for my use case, are we talking about multiple canvases all applied to a single VideoView? Or is this one canvas and one VideoView per user and my layout needs to add and remove each VideoView during the meeting whenever it switches from gridview to a single person view? Is it even possible to switch from a gridview to a single person during the meeting?

Hi @Johann, thanks for using the dev forum.

With the Fully Customizable SDK, the UI is not defined by the SDK, so you have complete control over all aspects of the UI of your app. That being said, there are a couple of things I noticed in your post that will not be possible with the Fully Customizable SDK:

  • Joining a Zoom meeting is not supported with this SDK. The Fully Customizable SDK provides audio and video streaming capabilities, but utilizes sessions instead of meetings. If you need to utilize Zoom meetings in your app, you must use the Client SDK.
  • Recording your session is not supported in the SDK itself, but could certainly be implemented by utilizing the raw data feature of the SDK.

Regarding grid view, this is absolutely possible to implement in your app, but is not part of the SDK’s feature set. Since you are implementing 100% of the UI yourself with this SDK, you have the freedom to display the participants in whatever manner you choose.

Thanks!

Your first point is not clear. What is the different between a meeting and a session? While I understand that the two are not compatible, are they still not in effect the same thing conceptionally? Is a session not a way to combine two or more people together in a meeting? After all, if I can create a gridview, I have effectively created a meeting. It may not be the same kind of meeting that the Client SDK provides, but it is still a meeting is it not?

Hi @Johann,

You are correct that a session and a meeting are conceptually very similar. We chose to name them differently in order to avoid confusing the two subjects, since sessions are not compatible with the Zoom ecosystem (i.e. you cannot join one with your Zoom account, from the Zoom client).

Is a session not a way to combine two or more people together in a meeting?

Yes and no. It allows two or more users to connect in a shared environment that allows for audio/video streaming between them. It does not allow users to connect to a Zoom meeting, because that concept does not exist within the Fully Customizable SDK.

After all, if I can create a gridview, I have effectively created a meeting. It may not be the same kind of meeting that the Client SDK provides, but it is still a meeting is it not?

I completely understand where your’e coming from with calling this a meeting, but there is technically nothing in the Fully Customizable SDK that is referred to as such. A session allows multiple users to meet, but does not provide the same experience as a Zoom meeting.

Thanks!

Thanks for the clarification. To be honest, I think most developers will end up with the same confusion. After all, if they are developing an app that uses Zoom to host a meeting, they will still consider it a “Zoom meeting” regardless whether the video streaming is done through the Client SDK or the Fully Customizable SDK. In both cases, it’s video being streamed from the Zoom platform. I think a better naming convention would have been something like “Zoom Native Meetings” and “Zoom Non-Native Meetings”. Anyways, that’s just my two cents.

Thanks again.

Hi @Johann,

Thank you for providing feedback on the naming of this. We always appreciate hearing from our developer community and will continue to monitor how frequently this becomes a point of confusion for developers. :slightly_smiling_face:

Thanks!