[Best Practices] Who is talking?

I need a fast way to identify who have an open or “not open” mic and compare this state with a custom list that change over time.

Immagine doing this scan every 100msec

What whould you suggest as a best practice to get fast as possible a “mic open” user state ?


Extra info

Until now i update an array lets say ZoomUserList

let zoomparticipantsctrl = remote.app.zoomparticipantsctrl;
    if (zoomparticipantsctrl) { 
        let userList = zoomparticipantsctrl.GetParticipantsList();
        zoomUserList = [];
        userList.forEach(element => {           
            let userObj = zoomparticipantsctrl.GetUserInfoByUserID(element.userid);                         

and update when a user join/left

then i call the isAudioMuted function to check if a user is mute and consider the not mute = talking (i didn’t find a fast better way to do this)

and also use the audiochange call back to do the check

this method is good for meeting with 50 or less people, but when i have a large meeting with > 50 people i put under pressure my app!

So, if there is some faster way to identify who is talking, please, any suggest is welcome !


Hi @f.barone,

Thanks for the post. If you would like to get notified and know who is talking, you may implement and listen to the following callback to identify the currently active audio:

 *@brief Notification of in-meeting active speakers.
 *@param useridArray The array contain userid of the active speakers.
- (void)onUserActiveAudioChanage:(NSArray *)useridArray;

Hope this helps. Thanks!

1 Like

Thanks !
So the best is listen to the events (y)

PS: is a typo ? “chanage” instead of “change” ?



Hi @f.barone,

Yes, the best way so far is to listen to the events. Ah yes, good catch, that is a typo, a cat ran on the keyboard :slight_smile: I will forward this to the engineering team.


Ps: another one is : “audioStauts”

Annotazione 2020-06-04 102414

Thanks for pointing that out. Really appreciate it. I will forward this to the engineering team as well.