|
|
@@ -256,20 +256,12 @@ JitsiConference.prototype.addTrack = function (track) {
|
|
256
|
256
|
if (track.startMuted) {
|
|
257
|
257
|
track.mute();
|
|
258
|
258
|
}
|
|
259
|
|
- var muteHandler = this._fireMuteChangeEvent.bind(this, track);
|
|
260
|
|
- var stopHandler = this.removeTrack.bind(this, track);
|
|
261
|
|
- var audioLevelHandler = this._fireAudioLevelChangeEvent.bind(this);
|
|
262
|
|
- track.addEventListener(JitsiTrackEvents.TRACK_MUTE_CHANGED, muteHandler);
|
|
263
|
|
- track.addEventListener(JitsiTrackEvents.TRACK_STOPPED, stopHandler);
|
|
264
|
|
- track.addEventListener(JitsiTrackEvents.TRACK_AUDIO_LEVEL_CHANGED, audioLevelHandler);
|
|
265
|
|
- this.addEventListener(JitsiConferenceEvents.TRACK_REMOVED, function (someTrack) {
|
|
266
|
|
- if (someTrack !== track) {
|
|
267
|
|
- return;
|
|
268
|
|
- }
|
|
269
|
|
- track.removeEventListener(JitsiTrackEvents.TRACK_MUTE_CHANGED, muteHandler);
|
|
270
|
|
- track.removeEventListener(JitsiTrackEvents.TRACK_STOPPED, stopHandler);
|
|
271
|
|
- track.removeEventListener(JitsiTrackEvents.TRACK_AUDIO_LEVEL_CHANGED, audioLevelHandler);
|
|
272
|
|
- });
|
|
|
259
|
+ track.muteHandler = this._fireMuteChangeEvent.bind(this, track);
|
|
|
260
|
+ track.stopHandler = this.removeTrack.bind(this, track);
|
|
|
261
|
+ track.audioLevelHandler = this._fireAudioLevelChangeEvent.bind(this);
|
|
|
262
|
+ track.addEventListener(JitsiTrackEvents.TRACK_MUTE_CHANGED, track.muteHandler);
|
|
|
263
|
+ track.addEventListener(JitsiTrackEvents.TRACK_STOPPED, track.stopHandler);
|
|
|
264
|
+ track.addEventListener(JitsiTrackEvents.TRACK_AUDIO_LEVEL_CHANGED, track.audioLevelHandler);
|
|
273
|
265
|
this.eventEmitter.emit(JitsiConferenceEvents.TRACK_ADDED, track);
|
|
274
|
266
|
}.bind(this));
|
|
275
|
267
|
};
|
|
|
@@ -304,6 +296,9 @@ JitsiConference.prototype.removeTrack = function (track) {
|
|
304
|
296
|
}
|
|
305
|
297
|
this.room.removeStream(track.getOriginalStream(), function(){
|
|
306
|
298
|
this.rtc.removeLocalStream(track);
|
|
|
299
|
+ track.removeEventListener(JitsiTrackEvents.TRACK_MUTE_CHANGED, track.muteHandler);
|
|
|
300
|
+ track.removeEventListener(JitsiTrackEvents.TRACK_STOPPED, track.stopHandler);
|
|
|
301
|
+ track.removeEventListener(JitsiTrackEvents.TRACK_AUDIO_LEVEL_CHANGED, track.audioLevelHandler);
|
|
307
|
302
|
this.eventEmitter.emit(JitsiConferenceEvents.TRACK_REMOVED, track);
|
|
308
|
303
|
}.bind(this));
|
|
309
|
304
|
};
|