ソースを参照

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

dev1
damencho 9年前
コミット
c1abbc4d65
4個のファイルの変更27行の追加21行の削除
  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 ファイルの表示

258
         if (track.startMuted) {
258
         if (track.startMuted) {
259
             track.mute();
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
         this.eventEmitter.emit(JitsiConferenceEvents.TRACK_ADDED, track);
267
         this.eventEmitter.emit(JitsiConferenceEvents.TRACK_ADDED, track);
276
     }.bind(this));
268
     }.bind(this));
277
 };
269
 };
306
     }
298
     }
307
     this.room.removeStream(track.getOriginalStream(), function(){
299
     this.room.removeStream(track.getOriginalStream(), function(){
308
         this.rtc.removeLocalStream(track);
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
         this.eventEmitter.emit(JitsiConferenceEvents.TRACK_REMOVED, track);
304
         this.eventEmitter.emit(JitsiConferenceEvents.TRACK_REMOVED, track);
310
     }.bind(this));
305
     }.bind(this));
311
 };
306
 };
1303
     }
1298
     }
1304
 };
1299
 };
1305
 
1300
 
1306
-require("es6-promise").polyfill()
1307
 //Setups the promise object.
1301
 //Setups the promise object.
1308
 window.Promise = window.Promise || require("es6-promise").Promise;
1302
 window.Promise = window.Promise || require("es6-promise").Promise;
1309
 
1303
 
1959
  * @param value the muted status.
1953
  * @param value the muted status.
1960
  */
1954
  */
1961
 JitsiRemoteTrack.prototype.setMute = function (value) {
1955
 JitsiRemoteTrack.prototype.setMute = function (value) {
1956
+
1957
+    if(this.muted == value)
1958
+        return;
1959
+
1962
     this.stream.muted = value;
1960
     this.stream.muted = value;
1963
     this.muted = value;
1961
     this.muted = value;
1964
     this.eventEmitter.emit(JitsiTrackEvents.TRACK_MUTE_CHANGED);
1962
     this.eventEmitter.emit(JitsiTrackEvents.TRACK_MUTE_CHANGED);
6904
     }
6902
     }
6905
     if(callback)
6903
     if(callback)
6906
         callback();
6904
         callback();
6905
+    this.removeFromPresence("audiomuted");
6907
 };
6906
 };
6908
 
6907
 
6909
 ChatRoom.prototype.addVideoInfoToPresence = function (mute) {
6908
 ChatRoom.prototype.addVideoInfoToPresence = function (mute) {
6920
     if(!this.connection)
6919
     if(!this.connection)
6921
         return;
6920
         return;
6922
     this.sendPresence();
6921
     this.sendPresence();
6922
+    this.removeFromPresence("videomuted");
6923
 };
6923
 };
6924
 
6924
 
6925
 ChatRoom.prototype.addListener = function(type, listener) {
6925
 ChatRoom.prototype.addListener = function(type, listener) {

+ 6
- 6
lib-jitsi-meet.min.js
ファイル差分が大きすぎるため省略します
ファイルの表示


+ 4
- 0
modules/RTC/JitsiRemoteTrack.js ファイルの表示

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

+ 2
- 0
modules/xmpp/ChatRoom.js ファイルの表示

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

読み込み中…
キャンセル
保存