|
@@ -375,10 +375,10 @@ export class TPCUtils {
|
375
|
375
|
* the connection should be kept alive.
|
376
|
376
|
* @param {boolean} active - true to enable audio media transmission or
|
377
|
377
|
* false to disable.
|
378
|
|
- * @returns {Promise<void>} - resolved when done.
|
|
378
|
+ * @returns {void}
|
379
|
379
|
*/
|
380
|
380
|
setAudioTransferActive(active) {
|
381
|
|
- return this.setMediaTransferActive('audio', active);
|
|
381
|
+ this.setMediaTransferActive('audio', active);
|
382
|
382
|
}
|
383
|
383
|
|
384
|
384
|
/**
|
|
@@ -403,38 +403,25 @@ export class TPCUtils {
|
403
|
403
|
* @param {String} mediaType - 'audio' or 'video'
|
404
|
404
|
* @param {boolean} active - true to enable media transmission or false
|
405
|
405
|
* to disable.
|
406
|
|
- * @returns {Promise<void>} - resolved when done.
|
|
406
|
+ * @returns {void}
|
407
|
407
|
*/
|
408
|
408
|
setMediaTransferActive(mediaType, active) {
|
409
|
409
|
const transceivers = this.pc.peerconnection.getTransceivers()
|
410
|
410
|
.filter(t => t.receiver && t.receiver.track && t.receiver.track.kind === mediaType);
|
411
|
411
|
const localTracks = this.pc.getLocalTracks(mediaType);
|
412
|
412
|
|
413
|
|
- const setParamPromises = [];
|
414
|
|
-
|
415
|
|
- if (active) {
|
416
|
|
- transceivers.forEach(transceiver => {
|
|
413
|
+ transceivers.forEach(transceiver => {
|
|
414
|
+ if (active) {
|
417
|
415
|
if (localTracks.length) {
|
|
416
|
+ // FIXME should adjust only the direction of the local sender or FF will fall into renegotiate loop
|
418
|
417
|
transceiver.direction = 'sendrecv';
|
419
|
|
- const parameters = transceiver.sender.getParameters();
|
420
|
|
-
|
421
|
|
- if (parameters && parameters.encodings && parameters.encodings.length) {
|
422
|
|
- parameters.encodings.forEach(encoding => {
|
423
|
|
- encoding.active = true;
|
424
|
|
- });
|
425
|
|
- setParamPromises.push(transceiver.sender.setParameters(parameters));
|
426
|
|
- }
|
427
|
418
|
} else {
|
428
|
419
|
transceiver.direction = 'recvonly';
|
429
|
420
|
}
|
430
|
|
- });
|
431
|
|
- } else {
|
432
|
|
- transceivers.forEach(transceiver => {
|
|
421
|
+ } else {
|
433
|
422
|
transceiver.direction = 'inactive';
|
434
|
|
- });
|
435
|
|
- }
|
436
|
|
-
|
437
|
|
- return Promise.all(setParamPromises);
|
|
423
|
+ }
|
|
424
|
+ });
|
438
|
425
|
}
|
439
|
426
|
|
440
|
427
|
/**
|
|
@@ -444,9 +431,9 @@ export class TPCUtils {
|
444
|
431
|
* the connection should be kept alive.
|
445
|
432
|
* @param {boolean} active - true to enable video media transmission or
|
446
|
433
|
* false to disable.
|
447
|
|
- * @returns {Promise<void>} - resolved when done.
|
|
434
|
+ * @returns {void}
|
448
|
435
|
*/
|
449
|
436
|
setVideoTransferActive(active) {
|
450
|
|
- return this.setMediaTransferActive('video', active);
|
|
437
|
+ this.setMediaTransferActive('video', active);
|
451
|
438
|
}
|
452
|
439
|
}
|