Inconsistent behavior for onActiveSpeakerChange and onMyActiveSpeakerChange events

We are trying to listen to the onActiveSpeakerChange event in order to determine who’s speaking in a meeting and for how long.

The issue we are experiencing is that the onActiveSpeakerChange behaves in a way that makes it difficult to accurately determine how long a participant has been speaking.

Currently testing the event it fires under two conditions:

  • When the active speaker changes
  • When the current active speaker creates more sound after a pause. A real world example would be a long pause between sentences.

However, in the second case, there is no event firing for when the active speaker stops speaking. In that case, when that same speaker starts speaking again it will fire a subsequent event.

One would expect that if the current active speaker stopped speaking for a few moments, an event would fire indicating that the the active speaker has “stopped” speaking.

When looking at the “onMyActiveSpeakerChange” event in testing, it will fire when the user starts speaking but does not fire when the users stops . I believe this may be a bug.

In an ideal scenario these two events behave in the following ways:

For both “onActiveSpeakerChange” and “onMyActiveSpeakerChange” events, the object returned would have the same basic type for the event. Something like the below

export type OnActiveSpeakerChangeUserType = {
  participantId: string;
  screenName: string;
  timestamp: string;
  participantUUID: string
  type: 'started' | 'stopped'

export type OnMyActiveSpeakerChangeEvent = OnActiveSpeakerChangeUserType;

export type OnActiveSpeakerChangeEvent = {
  timestamp: number; users: OnActiveSpeakerChangeUserType[]

  • For both onActiveSpeakerChange and onMyActiveSpeakerChange events, it would fire when the user starts speaking and when the user stops speaking. This means the “type” of event would always be included.

  • Just in general for APIs that have similar onFooEvent and onMyFooEvent, I usually expect them to have the same behavior and shape. The onReaction and onMyReaction is another example where the behavior is slightly different. The hand raise does not fire on onReaction.

Is it possible to update these events to have this behavior or introduce new events that would? Thanks!

@jon6 This doesn’t seem to be buggy behavior, but I think this would be a helpful feature for that API. I recommend submitting this to our ideas portal as a first step. Can you send me the link if you do?

Hi, we are facing a similar issue with our app, onMyActiveSpeakerChange will not register an event even if the user has stopped talking. Could you share if you were able to find any solution? Thanks