Skip to content

Commit 8953668

Browse files
committed
fix(RTCStats) Send dominantSpeaker and audio/video mute events correctly.
1 parent 6bca1e1 commit 8953668

File tree

2 files changed

+9
-4
lines changed

2 files changed

+9
-4
lines changed

JitsiConferenceEventManager.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -499,22 +499,22 @@ export default class JitsiConferenceEventManager {
499499
(dominant: string, previous: string[], silence: boolean) => {
500500
if ((conference.lastDominantSpeaker !== dominant || conference.dominantSpeakerIsSilent !== silence)
501501
&& conference.room) {
502-
conference.lastDominantSpeaker = dominant;
503502
conference.dominantSpeakerIsSilent = silence;
504503
conference.eventEmitter.emit(
505504
JitsiConferenceEvents.DOMINANT_SPEAKER_CHANGED, dominant, previous, silence);
506505
if (conference.statistics && conference.myUserId() === dominant) {
507506
// We are the new dominant speaker.
508507
conference.xmpp.sendDominantSpeakerEvent(conference.room.roomjid, silence);
508+
RTCStats.sendStatsEntry(RTCStatsEvents.DOMINANT_SPEAKER_CHANGED_EVENT);
509509
}
510510
if (conference.lastDominantSpeaker !== dominant) {
511+
conference.lastDominantSpeaker = dominant;
512+
511513
if (previous?.length) {
512514
const speakerList = previous.slice(0);
513515

514516
// Add the dominant speaker to the top of the list (exclude self).
515-
if (conference.myUserId() === dominant) {
516-
RTCStats.sendStatsEntry(RTCStatsEvents.DOMINANT_SPEAKER_CHANGED_EVENT);
517-
} else {
517+
if (conference.myUserId() !== dominant) {
518518
speakerList.splice(0, 0, dominant);
519519
}
520520

modules/RTC/JitsiLocalTrack.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ import {
1616
AnalyticsEvents,
1717
createNoDataFromSourceEvent
1818
} from '../../service/statistics/AnalyticsEvents';
19+
import RTCStats from '../RTCStats/RTCStats';
20+
import { RTCStatsEvents } from '../RTCStats/RTCStatsEvents';
1921
import browser from '../browser';
2022
import VADAudioAnalyser from '../detection/VADAudioAnalyser';
2123
import Statistics from '../statistics/statistics';
@@ -542,6 +544,9 @@ export default class JitsiLocalTrack extends JitsiTrack {
542544
return promise
543545
.then(() => {
544546
this._sendMuteStatus(muted);
547+
const event = this.isAudioTrack() ? RTCStatsEvents.AUDIO_MUTE_CHANGED_EVENT : RTCStatsEvents.VIDEO_MUTE_CHANGED_EVENT;
548+
549+
RTCStats.sendStatsEntry(event, null, muted);
545550

546551
// Send the videoType message to the bridge.
547552
this.isVideoTrack() && this.conference?._sendBridgeVideoTypeMessage(this);

0 commit comments

Comments
 (0)