We’re seeing an issue when using Breakout rooms in conjunction with the startActiveView API in our custom UI.
To summarize:
When using the startActiveView API in the main Zoom room (on the view we get from getVideoView on ZoomSDKActiveVideoElement), we have no problems with the video feed, and everything seems to work correctly
If the meeting host joins a Breakout room with another participant, however, and we attempt to use startActiveView, the related view is blank and video feed never appears
Our UI and code is, generally, identical between these two scenarios, and so the failure in the breakout room is a bit puzzling
The startActiveView API is not returning any errors, and is reporting success, despite there being no video feed
So far I haven’t been able to find much in the way of clues as to what is going wrong. Initially I thought perhaps our UI was laid out incorrectly in the Breakout room, but that doesn’t appear to be the case.
Other notes:
The NSView for hosting the video stream (from getVideoView) is visible, the frame is Ok, and the expected private subviews (Zoom SDK’s Metal-backed views) are also showing in the UI
We get no error codes when calling startActiveView
I have also tried tapping into the related delegate hooks for ZoomSDKVideoContainerDelegate to see if we were overlooking or misusing some callback there, but I can’t see any obvious callbacks which are occurring or any errors etc.
Apologies if I’m overlooking something obvious, but can anyone possibly offer any ideas/hints/suggestions as to what might be going wrong?
Which macOS Client SDK version?
5.5.12511.0420
To Reproduce(If applicable)
(Please see notes above.)
Screenshots
Device (please complete the following information):
Sorry to hear you’re running into issues with the active speaker view in breakout rooms. Can you please confirm that the following steps to reproduce are correct?
Start a meeting from the Zoom client
Join the meeting using the SDK
From the client, assign the SDK user to a breakout room
From the SDK, join the breakout room
From the client join that same breakout room
After the host joins the breakout room, setup the active speaker view through the SDK
Thanks for confirming the steps to reproduce. Just to clarify, are you seeing this issue only from the host’s perspective, only from the attendee’s perspective, or both?
Hi Jon,
Thanks again for the reply; primarily I have been testing the ‘active view’ from the host’s perspective. I’ve run a few tests from the attendee’s client as well, however, and the issue is the same.
Thanks very much Jon. Any chance you could confirm whether your team has also reproduced this issue (or something similar)? We are trying to determine what the root culprit might be but so far haven’t been able to find much.
We were not able to reproduce this, but upon closer investigation we figure out why. The short of it is that a new video element must be used. More information below.
All video elements provided by the macOS SDK are meant to coincide with the lifecycle of the current meeting instance. That means that when you leave a meeting, you must clean up all elements related to that meeting. Since breakout rooms are treated as distinct meetings, you will need to create a new video element when joining the breakout room, and then another when rejoining the main meeting.
Please let me know if anything is unclear or if you are still encountering issues after updating to this approach.