Get active speaker in Mac OS client SDK

Is the active speaker available in the Mac OS client SDK?

In a previous thread linked below, I see a reference to it being available in the iOS client, but can’t find the corresponding method in the Mac OS SDK.

I’d like to know which user is speaking in real-time so that I can correlate with real-time audio processing on the side (e.g. transcription). I’m open to other approaches as well.


There is a method in the meeting delegate ((void)onActiveVideoUserChanged:(unsigned int)userID) which should be called on active speaker change however this is currently broken on macOS as it is always one user behind. Hopefully this might be fixed at some point soon…

1 Like

Hi @jsw, thanks for using the dev forum (and thank you @richard1 for providing the answer! :blue_heart: )

Please let me know if you would like any additional help or if the callback referenced in the previous reply is missing some aspect of functionality you are looking for. As @richard1 mentioned, there is a known bug with this callback which we are working on a fix for.


ZoomSDKMeetingActionControllerDelegate also has similar methods onUserActiveAudioChanage() [including typo] and onActiveSpeakerVideoUserChanged(). I’m not sure which of all 3 would be most appropriate to get notified of the active speaker(s).

Hi @jsw,

Thanks for pointing out that typo! We’ll get that fixed in a future release.

Here is a breakdown of what each of those callbacks indicates:

  • onUserActiveAudioChanage - Provides an NSArray containing user IDs for all attendees with active audio
  • onActiveSpeakerVideoUserChanged - When using active speaker view, this callback indicates when the active speaker displayed changes.
  • onActiveVideoUserChanged - Functions similarly to the onActiveSpeakerVideoUserChanged callback, but can be triggered without the specific user speaking (e.g. the previous active speaker left the meeting and now a new one must be shown).


Hi @jon.lieblich ,

I would be using gallery view instead of speaker view, so that seems to rule out onActiveSpeakerVideoUserChanged and onActiveSpeakerVideoUserChanged. So would onUserActiveAudioChanage be the right callback to set for determining the current speaker(s), independent of the view?

Hi @jsw,

For your use case, yes I would recommend that callback. :slightly_smiling_face: