Procházet zdrojové kódy

Merge pull request #160 from tsareg/fix_track_dispose_and_conference_leave

Fix JitsiLocalTrack dispose() method
dev1
hristoterezov před 9 roky
rodič
revize
30351f7cd1
1 změnil soubory, kde provedl 8 přidání a 8 odebrání
  1. 8
    8
      JitsiConference.js

+ 8
- 8
JitsiConference.js Zobrazit soubor

314
  */
314
  */
315
 JitsiConference.prototype.addTrack = function (track) {
315
 JitsiConference.prototype.addTrack = function (track) {
316
     if (track.disposed) {
316
     if (track.disposed) {
317
-        throw new JitsiTrackError(JitsiTrackErrors.TRACK_IS_DISPOSED);
317
+        return Promise.reject(
318
+            new JitsiTrackError(JitsiTrackErrors.TRACK_IS_DISPOSED));
318
     }
319
     }
319
 
320
 
320
     if (track.isVideoTrack()) {
321
     if (track.isVideoTrack()) {
326
             if (track === localVideoTrack) {
327
             if (track === localVideoTrack) {
327
                 return Promise.resolve(track);
328
                 return Promise.resolve(track);
328
             } else {
329
             } else {
329
-                throw new Error(
330
-                        "cannot add second video track to the conference");
330
+                return Promise.reject(new Error(
331
+                    "cannot add second video track to the conference"));
331
             }
332
             }
332
         }
333
         }
333
     }
334
     }
430
  * @returns {Promise}
431
  * @returns {Promise}
431
  */
432
  */
432
 JitsiConference.prototype.removeTrack = function (track) {
433
 JitsiConference.prototype.removeTrack = function (track) {
433
-    if(track.disposed)
434
-    {
435
-        throw new Error(JitsiTrackErrors.TRACK_IS_DISPOSED);
434
+    if (track.disposed) {
435
+        return Promise.reject(
436
+            new JitsiTrackError(JitsiTrackErrors.TRACK_IS_DISPOSED));
436
     }
437
     }
437
 
438
 
438
     if(!this.room){
439
     if(!this.room){
445
     return new Promise(function (resolve, reject) {
446
     return new Promise(function (resolve, reject) {
446
         this.room.removeStream(track.getOriginalStream(), function(){
447
         this.room.removeStream(track.getOriginalStream(), function(){
447
             track._setSSRC(null);
448
             track._setSSRC(null);
448
-            //FIXME: This dependacy is not necessary. This is quick fix.
449
-            track._setConference(this);
449
+            track._setConference(null);
450
             this.rtc.removeLocalTrack(track);
450
             this.rtc.removeLocalTrack(track);
451
             track.removeEventListener(JitsiTrackEvents.TRACK_MUTE_CHANGED,
451
             track.removeEventListener(JitsiTrackEvents.TRACK_MUTE_CHANGED,
452
                 track.muteHandler);
452
                 track.muteHandler);

Načítá se…
Zrušit
Uložit