Blank video when calling startActiveView while in a Breakout room

Description

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):

  • Device: Apple MacBook Pro (13-inch)
  • OS: macOS Big Sur 11.4

Hi @matt.r.zoom, thanks for the post.

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?

  1. Start a meeting from the Zoom client
  2. Join the meeting using the SDK
  3. From the client, assign the SDK user to a breakout room
  4. From the SDK, join the breakout room
  5. From the client join that same breakout room
  6. After the host joins the breakout room, setup the active speaker view through the SDK
  7. Observe blank video

Thanks!

Hi Jon,

Thanks for the reply; the above steps are pretty close to how we’re testing locally in our custom UI / client. Summarized:

  1. Join a meeting as the host, where at least 1 other attendee has also joined (attendee is also using our custom client app + UI)
  2. Create a Breakout room and assign the attendee to join
  3. Ensure the attendee has joined the Breakout room
  4. As host, also join the Breakout room
  5. Setup the active speaker view (via the SDK, getVideoView + startActiveView etc.)

Result: view displays blank video.

Hi @matt.r.zoom,

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?

Thanks!

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.

Hi @matt.r.zoom,

Thanks for confirming. We’ll investigate this and let you know as soon as we have any updates.

Thanks!

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.

Hi @matt.r.zoom,

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.

Thanks!

Hi Jon, thanks very much for providing this info, it looks like this fixes the issue. Thank you again

Glad we were able to help get this resolved!

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.