|
|
@@ -274,6 +274,7 @@ JitsiConference.prototype.setSubject = function (subject) {
|
|
274
|
274
|
/**
|
|
275
|
275
|
* Adds JitsiLocalTrack object to the conference.
|
|
276
|
276
|
* @param track the JitsiLocalTrack object.
|
|
|
277
|
+ * @returns {Promise<JitsiLocalTrack>}
|
|
277
|
278
|
*/
|
|
278
|
279
|
JitsiConference.prototype.addTrack = function (track) {
|
|
279
|
280
|
if (track.isVideoTrack()) {
|
|
|
@@ -285,21 +286,24 @@ JitsiConference.prototype.addTrack = function (track) {
|
|
285
|
286
|
}
|
|
286
|
287
|
});
|
|
287
|
288
|
}
|
|
288
|
|
- this.room.addStream(track.getOriginalStream(), function () {
|
|
289
|
|
- this.rtc.addLocalStream(track);
|
|
290
|
|
- if (track.startMuted) {
|
|
291
|
|
- track.mute();
|
|
292
|
|
- }
|
|
293
|
|
- track.muteHandler = this._fireMuteChangeEvent.bind(this, track);
|
|
294
|
|
- track.stopHandler = this.removeTrack.bind(this, track);
|
|
295
|
|
- track.audioLevelHandler = this._fireAudioLevelChangeEvent.bind(this);
|
|
296
|
|
- track.addEventListener(JitsiTrackEvents.TRACK_MUTE_CHANGED,
|
|
297
|
|
- track.muteHandler);
|
|
298
|
|
- track.addEventListener(JitsiTrackEvents.TRACK_STOPPED,
|
|
299
|
|
- track.stopHandler);
|
|
300
|
|
- track.addEventListener(JitsiTrackEvents.TRACK_AUDIO_LEVEL_CHANGED,
|
|
301
|
|
- track.audioLevelHandler);
|
|
302
|
|
- this.eventEmitter.emit(JitsiConferenceEvents.TRACK_ADDED, track);
|
|
|
289
|
+ return new Promise(function (resolve) {
|
|
|
290
|
+ this.room.addStream(track.getOriginalStream(), function () {
|
|
|
291
|
+ this.rtc.addLocalStream(track);
|
|
|
292
|
+ if (track.startMuted) {
|
|
|
293
|
+ track.mute();
|
|
|
294
|
+ }
|
|
|
295
|
+ track.muteHandler = this._fireMuteChangeEvent.bind(this, track);
|
|
|
296
|
+ track.stopHandler = this.removeTrack.bind(this, track);
|
|
|
297
|
+ track.audioLevelHandler = this._fireAudioLevelChangeEvent.bind(this);
|
|
|
298
|
+ track.addEventListener(JitsiTrackEvents.TRACK_MUTE_CHANGED,
|
|
|
299
|
+ track.muteHandler);
|
|
|
300
|
+ track.addEventListener(JitsiTrackEvents.TRACK_STOPPED,
|
|
|
301
|
+ track.stopHandler);
|
|
|
302
|
+ track.addEventListener(JitsiTrackEvents.TRACK_AUDIO_LEVEL_CHANGED,
|
|
|
303
|
+ track.audioLevelHandler);
|
|
|
304
|
+ this.eventEmitter.emit(JitsiConferenceEvents.TRACK_ADDED, track);
|
|
|
305
|
+ resolve(track);
|
|
|
306
|
+ }.bind(this));
|
|
303
|
307
|
}.bind(this));
|
|
304
|
308
|
};
|
|
305
|
309
|
|
|
|
@@ -330,19 +334,23 @@ JitsiConference.prototype._fireMuteChangeEvent = function (track) {
|
|
330
|
334
|
/**
|
|
331
|
335
|
* Removes JitsiLocalTrack object to the conference.
|
|
332
|
336
|
* @param track the JitsiLocalTrack object.
|
|
|
337
|
+ * @returns {Promise}
|
|
333
|
338
|
*/
|
|
334
|
339
|
JitsiConference.prototype.removeTrack = function (track) {
|
|
335
|
340
|
if(!this.room){
|
|
336
|
341
|
if(this.rtc)
|
|
337
|
342
|
this.rtc.removeLocalStream(track);
|
|
338
|
|
- return;
|
|
|
343
|
+ return Promise.resolve();
|
|
339
|
344
|
}
|
|
340
|
|
- this.room.removeStream(track.getOriginalStream(), function(){
|
|
341
|
|
- this.rtc.removeLocalStream(track);
|
|
342
|
|
- track.removeEventListener(JitsiTrackEvents.TRACK_MUTE_CHANGED, track.muteHandler);
|
|
343
|
|
- track.removeEventListener(JitsiTrackEvents.TRACK_STOPPED, track.stopHandler);
|
|
344
|
|
- track.removeEventListener(JitsiTrackEvents.TRACK_AUDIO_LEVEL_CHANGED, track.audioLevelHandler);
|
|
345
|
|
- this.eventEmitter.emit(JitsiConferenceEvents.TRACK_REMOVED, track);
|
|
|
345
|
+ return new Promise(function (resolve) {
|
|
|
346
|
+ this.room.removeStream(track.getOriginalStream(), function(){
|
|
|
347
|
+ this.rtc.removeLocalStream(track);
|
|
|
348
|
+ track.removeEventListener(JitsiTrackEvents.TRACK_MUTE_CHANGED, track.muteHandler);
|
|
|
349
|
+ track.removeEventListener(JitsiTrackEvents.TRACK_STOPPED, track.stopHandler);
|
|
|
350
|
+ track.removeEventListener(JitsiTrackEvents.TRACK_AUDIO_LEVEL_CHANGED, track.audioLevelHandler);
|
|
|
351
|
+ this.eventEmitter.emit(JitsiConferenceEvents.TRACK_REMOVED, track);
|
|
|
352
|
+ resolve();
|
|
|
353
|
+ }.bind(this));
|
|
346
|
354
|
}.bind(this));
|
|
347
|
355
|
};
|
|
348
|
356
|
|