Bladeren bron

Removes muted info from presence to avoid generating too many muted events.

dev1
damencho 9 jaren geleden
bovenliggende
commit
c1abbc4d65
4 gewijzigde bestanden met toevoegingen van 27 en 21 verwijderingen
  1. 15
    15
      lib-jitsi-meet.js
  2. 6
    6
      lib-jitsi-meet.min.js
  3. 4
    0
      modules/RTC/JitsiRemoteTrack.js
  4. 2
    0
      modules/xmpp/ChatRoom.js

+ 15
- 15
lib-jitsi-meet.js Bestand weergeven

@@ -258,20 +258,12 @@ JitsiConference.prototype.addTrack = function (track) {
258 258
         if (track.startMuted) {
259 259
             track.mute();
260 260
         }
261
-        var muteHandler = this._fireMuteChangeEvent.bind(this, track);
262
-        var stopHandler = this.removeTrack.bind(this, track);
263
-        var audioLevelHandler = this._fireAudioLevelChangeEvent.bind(this);
264
-        track.addEventListener(JitsiTrackEvents.TRACK_MUTE_CHANGED, muteHandler);
265
-        track.addEventListener(JitsiTrackEvents.TRACK_STOPPED, stopHandler);
266
-        track.addEventListener(JitsiTrackEvents.TRACK_AUDIO_LEVEL_CHANGED, audioLevelHandler);
267
-        this.addEventListener(JitsiConferenceEvents.TRACK_REMOVED, function (someTrack) {
268
-            if (someTrack !== track) {
269
-                return;
270
-            }
271
-            track.removeEventListener(JitsiTrackEvents.TRACK_MUTE_CHANGED, muteHandler);
272
-            track.removeEventListener(JitsiTrackEvents.TRACK_STOPPED, stopHandler);
273
-            track.removeEventListener(JitsiTrackEvents.TRACK_AUDIO_LEVEL_CHANGED, audioLevelHandler);
274
-        });
261
+        track.muteHandler = this._fireMuteChangeEvent.bind(this, track);
262
+        track.stopHandler = this.removeTrack.bind(this, track);
263
+        track.audioLevelHandler = this._fireAudioLevelChangeEvent.bind(this);
264
+        track.addEventListener(JitsiTrackEvents.TRACK_MUTE_CHANGED, track.muteHandler);
265
+        track.addEventListener(JitsiTrackEvents.TRACK_STOPPED, track.stopHandler);
266
+        track.addEventListener(JitsiTrackEvents.TRACK_AUDIO_LEVEL_CHANGED, track.audioLevelHandler);
275 267
         this.eventEmitter.emit(JitsiConferenceEvents.TRACK_ADDED, track);
276 268
     }.bind(this));
277 269
 };
@@ -306,6 +298,9 @@ JitsiConference.prototype.removeTrack = function (track) {
306 298
     }
307 299
     this.room.removeStream(track.getOriginalStream(), function(){
308 300
         this.rtc.removeLocalStream(track);
301
+        track.removeEventListener(JitsiTrackEvents.TRACK_MUTE_CHANGED, track.muteHandler);
302
+        track.removeEventListener(JitsiTrackEvents.TRACK_STOPPED, track.stopHandler);
303
+        track.removeEventListener(JitsiTrackEvents.TRACK_AUDIO_LEVEL_CHANGED, track.audioLevelHandler);
309 304
         this.eventEmitter.emit(JitsiConferenceEvents.TRACK_REMOVED, track);
310 305
     }.bind(this));
311 306
 };
@@ -1303,7 +1298,6 @@ var LibJitsiMeet = {
1303 1298
     }
1304 1299
 };
1305 1300
 
1306
-require("es6-promise").polyfill()
1307 1301
 //Setups the promise object.
1308 1302
 window.Promise = window.Promise || require("es6-promise").Promise;
1309 1303
 
@@ -1959,6 +1953,10 @@ JitsiRemoteTrack.prototype.constructor = JitsiRemoteTrack;
1959 1953
  * @param value the muted status.
1960 1954
  */
1961 1955
 JitsiRemoteTrack.prototype.setMute = function (value) {
1956
+
1957
+    if(this.muted == value)
1958
+        return;
1959
+
1962 1960
     this.stream.muted = value;
1963 1961
     this.muted = value;
1964 1962
     this.eventEmitter.emit(JitsiTrackEvents.TRACK_MUTE_CHANGED);
@@ -6904,6 +6902,7 @@ ChatRoom.prototype.sendAudioInfoPresence = function(mute, callback) {
6904 6902
     }
6905 6903
     if(callback)
6906 6904
         callback();
6905
+    this.removeFromPresence("audiomuted");
6907 6906
 };
6908 6907
 
6909 6908
 ChatRoom.prototype.addVideoInfoToPresence = function (mute) {
@@ -6920,6 +6919,7 @@ ChatRoom.prototype.sendVideoInfoPresence = function (mute) {
6920 6919
     if(!this.connection)
6921 6920
         return;
6922 6921
     this.sendPresence();
6922
+    this.removeFromPresence("videomuted");
6923 6923
 };
6924 6924
 
6925 6925
 ChatRoom.prototype.addListener = function(type, listener) {

+ 6
- 6
lib-jitsi-meet.min.js
Diff onderdrukt omdat het te groot bestand
Bestand weergeven


+ 4
- 0
modules/RTC/JitsiRemoteTrack.js Bestand weergeven

@@ -36,6 +36,10 @@ JitsiRemoteTrack.prototype.constructor = JitsiRemoteTrack;
36 36
  * @param value the muted status.
37 37
  */
38 38
 JitsiRemoteTrack.prototype.setMute = function (value) {
39
+
40
+    if(this.muted === value)
41
+        return;
42
+
39 43
     this.stream.muted = value;
40 44
     this.muted = value;
41 45
     this.eventEmitter.emit(JitsiTrackEvents.TRACK_MUTE_CHANGED);

+ 2
- 0
modules/xmpp/ChatRoom.js Bestand weergeven

@@ -626,6 +626,7 @@ ChatRoom.prototype.sendAudioInfoPresence = function(mute, callback) {
626 626
     }
627 627
     if(callback)
628 628
         callback();
629
+    this.removeFromPresence("audiomuted");
629 630
 };
630 631
 
631 632
 ChatRoom.prototype.addVideoInfoToPresence = function (mute) {
@@ -642,6 +643,7 @@ ChatRoom.prototype.sendVideoInfoPresence = function (mute) {
642 643
     if(!this.connection)
643 644
         return;
644 645
     this.sendPresence();
646
+    this.removeFromPresence("videomuted");
645 647
 };
646 648
 
647 649
 ChatRoom.prototype.addListener = function(type, listener) {

Laden…
Annuleren
Opslaan