An event for when a participant stops being an active speaker?

The intent is to be able to measure the time a participant spoke during the meeting.

OnActiveSpeakerChangeEvent fires when a participant starts speaking. The GUI highlights the speaker with a yellow frame in response to this, among other things. There is clearly also a cut-off point when an active speaker is not considered one anymore.

Is there something that can be done with the existing version of SDK to tell when that happens?

If not, the OnActiveSpeakerChangeEvent firing again would be a dream )

For your use case, you may find the onMyActiveSpeakerChange() event to be more useful.

With that event, you should be able to see when the current user stops speaking.

Let me know if that helps.

Thanks for replying, Max!

No, unfortunately, that’s not what I’m looking for.

  • onMyActiveSpeakerChange() fires only for the current user of the app. At least at this early stage there won’t be a version for participants - just for the host - to gather data on how long each participant has spoken.
  • What’s even more relevant to my problem - onMyActiveSpeakerChange() issues the stopped flag only when another participant becomes active. onActiveSpeakerChange() behaves the same - it only fires when someone starts speaking, but not when someone who has been, stops, which is what I need.

So, just to be clearer with my op, I’m looking for a way to know when any participant, not just the current user of the app, stops speaking, regardless of whether they got interrupted by someone, or just fell silent - as soon as Zoom deems them not speaking anymore.

I get how that might happen too often - because of hesitations, pauses, or network issues, for instance - but that could be accounted for by adding a 1-2 seconds buffer before firing a callback.

Alternatively, I could do with an event that’s emitted whenever a partcipant mutes their mic.

Please let me know if there is anything in the current API I could get to do this for me.
Much appreciated!

You should be able to use the onMyActiveSpeakerChange as any participant in the meeting. However, this would require that the backend is able to receive information about the participants via socket and then calculate the time they spoke.

I see your point here, it doesn’t allow accurate calculation of how long a user was speaking due to delays switching the active user and also doesn’t account for silence after they talk. I pinged our team to see if we have a better method.

In the meantime, can you share your use case for calculating the time a participant spoke during the meeting?

You can use the onMyMediaChange() function to respond to changes in the users microphone state.

1 Like

This is one of the intended ways to track participants’ contributions and measure engagement.

The plan is for the initial release to not require guests to run the app and wait for a wider adoption amongst those who need it for their work. So any methods that imply this would not be appropriate - yet, that is. And both onMyActiveSpeakerChange and onMyMediaChange() do :slightly_frowning_face:.

I’ve reached out to our product managers to indicate this is a needed feature. I’ll work to get traction on it as I understand that tracking engagement is an important feature for us to support.

1 Like