浏览代码

Simplifies logic and renames a method.

Fixes tests.
tags/v0.0.2
damencho 7 年前
父节点
当前提交
2108f80e3d

+ 10
- 12
modules/statistics/SpeakerStats.js 查看文件

20
         this._userId = userId;
20
         this._userId = userId;
21
         this.setDisplayName(displayName);
21
         this.setDisplayName(displayName);
22
         this._isLocalStats = isLocalStats || false;
22
         this._isLocalStats = isLocalStats || false;
23
-        this.setIsDominantSpeaker(false);
23
+        this.setDominantSpeaker(false);
24
         this.totalDominantSpeakerTime = 0;
24
         this.totalDominantSpeakerTime = 0;
25
-        this._dominantSpeakerStart = null;
25
+        this._dominantSpeakerStart = 0;
26
         this._hasLeft = false;
26
         this._hasLeft = false;
27
     }
27
     }
28
 
28
 
69
      * @returns {boolean}
69
      * @returns {boolean}
70
      */
70
      */
71
     isDominantSpeaker() {
71
     isDominantSpeaker() {
72
-        return this._isDominantSpeaker;
72
+        return this._dominantSpeakerStart > 0;
73
     }
73
     }
74
 
74
 
75
     /**
75
     /**
80
      * and will record any time accumulated since starting as dominant speaker.
80
      * and will record any time accumulated since starting as dominant speaker.
81
      * @returns {void}
81
      * @returns {void}
82
      */
82
      */
83
-    setIsDominantSpeaker(isNowDominantSpeaker) {
84
-        if (!this._isDominantSpeaker && isNowDominantSpeaker) {
83
+    setDominantSpeaker(isNowDominantSpeaker) {
84
+        if (!this.isDominantSpeaker() && isNowDominantSpeaker) {
85
             this._dominantSpeakerStart = Date.now();
85
             this._dominantSpeakerStart = Date.now();
86
-        } else if (this._isDominantSpeaker && !isNowDominantSpeaker) {
86
+        } else if (this.isDominantSpeaker() && !isNowDominantSpeaker) {
87
             const now = Date.now();
87
             const now = Date.now();
88
-            const timeElapsed = now - (this._dominantSpeakerStart || 0);
88
+            const timeElapsed = now - this._dominantSpeakerStart;
89
 
89
 
90
             this.totalDominantSpeakerTime += timeElapsed;
90
             this.totalDominantSpeakerTime += timeElapsed;
91
-            this._dominantSpeakerStart = null;
91
+            this._dominantSpeakerStart = 0;
92
         }
92
         }
93
-
94
-        this._isDominantSpeaker = isNowDominantSpeaker;
95
     }
93
     }
96
 
94
 
97
     /**
95
     /**
102
     getTotalDominantSpeakerTime() {
100
     getTotalDominantSpeakerTime() {
103
         let total = this.totalDominantSpeakerTime;
101
         let total = this.totalDominantSpeakerTime;
104
 
102
 
105
-        if (this._isDominantSpeaker) {
103
+        if (this.isDominantSpeaker()) {
106
             total += Date.now() - this._dominantSpeakerStart;
104
             total += Date.now() - this._dominantSpeakerStart;
107
         }
105
         }
108
 
106
 
125
      */
123
      */
126
     markAsHasLeft() {
124
     markAsHasLeft() {
127
         this._hasLeft = true;
125
         this._hasLeft = true;
128
-        this.setIsDominantSpeaker(false);
126
+        this.setDominantSpeaker(false);
129
     }
127
     }
130
 }
128
 }
131
 
129
 

+ 3
- 3
modules/statistics/SpeakerStats.spec.js 查看文件

16
         });
16
         });
17
 
17
 
18
         it('removes the user as a dominant speaker', () => {
18
         it('removes the user as a dominant speaker', () => {
19
-            speakerStats.setIsDominantSpeaker(true);
19
+            speakerStats.setDominantSpeaker(true);
20
             speakerStats.markAsHasLeft();
20
             speakerStats.markAsHasLeft();
21
             expect(speakerStats.isDominantSpeaker()).toBe(false);
21
             expect(speakerStats.isDominantSpeaker()).toBe(false);
22
         });
22
         });
48
             const domaintSpeakerTime = 100;
48
             const domaintSpeakerTime = 100;
49
 
49
 
50
             for (let i = 0; i < domaintSpeakerEvents; i++) {
50
             for (let i = 0; i < domaintSpeakerEvents; i++) {
51
-                speakerStats.setIsDominantSpeaker(true);
51
+                speakerStats.setDominantSpeaker(true);
52
                 jasmine.clock().tick(domaintSpeakerTime);
52
                 jasmine.clock().tick(domaintSpeakerTime);
53
-                speakerStats.setIsDominantSpeaker(false);
53
+                speakerStats.setDominantSpeaker(false);
54
             }
54
             }
55
 
55
 
56
             expect(speakerStats.getTotalDominantSpeakerTime())
56
             expect(speakerStats.getTotalDominantSpeakerTime())

+ 7
- 5
modules/statistics/SpeakerStatsCollector.js 查看文件

39
         conference.addEventListener(
39
         conference.addEventListener(
40
             JitsiConferenceEvents.DISPLAY_NAME_CHANGED,
40
             JitsiConferenceEvents.DISPLAY_NAME_CHANGED,
41
             this._onDisplayNameChange.bind(this));
41
             this._onDisplayNameChange.bind(this));
42
-        conference.xmpp.addListener(
43
-            XMPPEvents.SPEAKER_STATS_RECEIVED,
44
-            this._updateStats.bind(this));
42
+        if (conference.xmpp) {
43
+            conference.xmpp.addListener(
44
+                XMPPEvents.SPEAKER_STATS_RECEIVED,
45
+                this._updateStats.bind(this));
46
+        }
45
     }
47
     }
46
 
48
 
47
     /**
49
     /**
58
             = this.stats.users[this.stats.dominantSpeakerId];
60
             = this.stats.users[this.stats.dominantSpeakerId];
59
         const newDominantSpeaker = this.stats.users[dominantSpeakerId];
61
         const newDominantSpeaker = this.stats.users[dominantSpeakerId];
60
 
62
 
61
-        oldDominantSpeaker && oldDominantSpeaker.setIsDominantSpeaker(false);
62
-        newDominantSpeaker && newDominantSpeaker.setIsDominantSpeaker(true);
63
+        oldDominantSpeaker && oldDominantSpeaker.setDominantSpeaker(false);
64
+        newDominantSpeaker && newDominantSpeaker.setDominantSpeaker(true);
63
         this.stats.dominantSpeakerId = dominantSpeakerId;
65
         this.stats.dominantSpeakerId = dominantSpeakerId;
64
     }
66
     }
65
 
67
 

+ 1
- 1
modules/xmpp/xmpp.js 查看文件

596
 
596
 
597
         msg.c('speakerstats', {
597
         msg.c('speakerstats', {
598
             xmlns: 'http://jitsi.org/jitmeet',
598
             xmlns: 'http://jitsi.org/jitmeet',
599
-            room: `${roomJid}` })
599
+            room: roomJid })
600
             .up();
600
             .up();
601
 
601
 
602
         this.connection.send(msg);
602
         this.connection.send(msg);

正在加载...
取消
保存