Description
I’m using Custom UI mode in the Zoom macOS Meeting SDK. I manually create and manage ZoomSDKVideoElement and ZoomSDKActiveVideoElement to render participant videos in my SwiftUI app.
I want to implement a pin feature (like Spotlight, but local) in my Custom UI:
-
When a participant is pinned, their video should appear in a larger “main” view.
-
When unpinned, the video returns to normal grid or secondary view.
I’m looking for a delegate or callback that tells me when a participant is pinned or unpinned, so I can update my UI accordingly.
To Reproduce:
- Join a meeting with multiple participants.
- Render participant videos using
ZoomSDKVideoElementandZoomSDKActiveVideoElementin Custom UI. - Tried built-in pin APIs such as
pinVideoToFirstView()andgetPinnedUserListFromFirstView()— these do not apply in Custom UI mode. - Tried
onActiveVideoUserChanged— only fires for active speaker changes, not pin/unpin.Screenshots
If applicable, add screenshots to help explain your problem.
Screenshots
N/A — behavior is delegate/API related.
Expected behavior:
- A delegate or callback triggers when a participant is pinned/unpinned, so I can update the UI.
Actual behavior:
-
No callback exists in Custom UI mode.
-
I must manually track which participant is pinned.
Troubleshooting Routes
- Tested using Custom UI mode.
Device (please complete the following information):
- Device: Apple MacBook Pro (16-inch, M1 Pro)
- OS: macOS Sonoma 14.5
Additional context
Goal: Detect in real time when a participant is pinned in Custom UI, so I can render their video in the main view.
- It seems the macOS SDK does not provide a pin change callback in Custom UI mode.
- Looking for any recommended way or workaround to achieve this behavior.