@techsee/techsee-media-service 14.0.0 → 15.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/MediaConstants.d.ts +0 -5
- package/lib/MediaConstants.d.ts.map +1 -1
- package/lib/MediaConstants.js +1 -9
- package/lib/MediaConstants.js.map +1 -1
- package/lib/MultiParty/MultiPartyService.d.ts +3 -6
- package/lib/MultiParty/MultiPartyService.d.ts.map +1 -1
- package/lib/MultiParty/MultiPartyServiceFactory.d.ts +2 -2
- package/lib/MultiParty/MultiPartyServiceFactory.d.ts.map +1 -1
- package/lib/MultiParty/MultiPartyServiceFactory.js +2 -2
- package/lib/MultiParty/MultiPartyServiceFactory.js.map +1 -1
- package/lib/MultiParty/MultipartyServiceEventTypes.d.ts +1 -3
- package/lib/MultiParty/MultipartyServiceEventTypes.d.ts.map +1 -1
- package/lib/MultiParty/VideoLayoutType.d.ts +4 -0
- package/lib/MultiParty/VideoLayoutType.d.ts.map +1 -0
- package/lib/MultiParty/VideoLayoutType.js +13 -0
- package/lib/MultiParty/VideoLayoutType.js.map +1 -0
- package/lib/MultiParty/index.d.ts +1 -0
- package/lib/MultiParty/index.d.ts.map +1 -1
- package/lib/MultiParty/index.js +10 -1
- package/lib/MultiParty/index.js.map +1 -1
- package/lib/MultiParty/opentok/OpentokMultiPartyService.d.ts +6 -12
- package/lib/MultiParty/opentok/OpentokMultiPartyService.d.ts.map +1 -1
- package/lib/MultiParty/opentok/OpentokMultiPartyService.js +71 -185
- package/lib/MultiParty/opentok/OpentokMultiPartyService.js.map +1 -1
- package/lib/MultiParty/opentok/OpentokPublisher.d.ts +16 -12
- package/lib/MultiParty/opentok/OpentokPublisher.d.ts.map +1 -1
- package/lib/MultiParty/opentok/OpentokPublisher.js +108 -17
- package/lib/MultiParty/opentok/OpentokPublisher.js.map +1 -1
- package/lib/MultiParty/opentok/OpentokPublisherEventMapper.d.ts +1 -2
- package/lib/MultiParty/opentok/OpentokPublisherEventMapper.d.ts.map +1 -1
- package/lib/MultiParty/opentok/OpentokPublisherEventMapper.js +5 -8
- package/lib/MultiParty/opentok/OpentokPublisherEventMapper.js.map +1 -1
- package/lib/MultiParty/types.d.ts +1 -5
- package/lib/MultiParty/types.d.ts.map +1 -1
- package/lib/MultiParty/utils.d.ts +1 -7
- package/lib/MultiParty/utils.d.ts.map +1 -1
- package/lib/MultiParty/utils.js +1 -7
- package/lib/MultiParty/utils.js.map +1 -1
- package/lib/qos/raw-qos.js +1 -1
- package/lib/webrtc-ie-shim.js +1 -1
- package/package.json +3 -3
- package/lib/MultiParty/opentok/OpentokScreenPublisher.d.ts +0 -5
- package/lib/MultiParty/opentok/OpentokScreenPublisher.d.ts.map +0 -1
- package/lib/MultiParty/opentok/OpentokScreenPublisher.js +0 -80
- package/lib/MultiParty/opentok/OpentokScreenPublisher.js.map +0 -1
- package/lib/MultiParty/opentok/OpentokVideoPublisher.d.ts +0 -13
- package/lib/MultiParty/opentok/OpentokVideoPublisher.d.ts.map +0 -1
- package/lib/MultiParty/opentok/OpentokVideoPublisher.js +0 -314
- package/lib/MultiParty/opentok/OpentokVideoPublisher.js.map +0 -1
|
@@ -214,9 +214,7 @@ var MultiPartyService_1 = require("../MultiPartyService");
|
|
|
214
214
|
|
|
215
215
|
var MultipartyServiceEventTypes_1 = require("../MultipartyServiceEventTypes");
|
|
216
216
|
|
|
217
|
-
var
|
|
218
|
-
|
|
219
|
-
var OpentokScreenPublisher_1 = require("./OpentokScreenPublisher");
|
|
217
|
+
var OpentokPublisher_1 = require("./OpentokPublisher");
|
|
220
218
|
|
|
221
219
|
var OpentokSubscriber_1 = require("./OpentokSubscriber");
|
|
222
220
|
|
|
@@ -224,8 +222,6 @@ var utils_1 = require("../utils");
|
|
|
224
222
|
|
|
225
223
|
var trace_1 = require("./trace");
|
|
226
224
|
|
|
227
|
-
var MediaConstants_1 = require("../../MediaConstants");
|
|
228
|
-
|
|
229
225
|
var trace = MediaTracer_1.getMediaTracer('Multiparty');
|
|
230
226
|
|
|
231
227
|
var OpentokMultiPartyService =
|
|
@@ -237,7 +233,6 @@ function (_super) {
|
|
|
237
233
|
var _this = _super.call(this) || this;
|
|
238
234
|
|
|
239
235
|
_this.getParticipantId = getParticipantId;
|
|
240
|
-
_this.enableDesktopSharing = false;
|
|
241
236
|
_this.backgroundImageURI = MultiPartyService_1.DEFAULT_AVATAR_URI;
|
|
242
237
|
_this.subscriberList = [];
|
|
243
238
|
|
|
@@ -245,7 +240,7 @@ function (_super) {
|
|
|
245
240
|
_this.backgroundImageURI = uri || MultiPartyService_1.DEFAULT_AVATAR_URI;
|
|
246
241
|
};
|
|
247
242
|
|
|
248
|
-
_this.connect = function (
|
|
243
|
+
_this.connect = function (settings, credentials) {
|
|
249
244
|
try {
|
|
250
245
|
_this.session = OT.initSession(credentials.apiKey, credentials.sessionId);
|
|
251
246
|
|
|
@@ -278,9 +273,7 @@ function (_super) {
|
|
|
278
273
|
return;
|
|
279
274
|
}
|
|
280
275
|
|
|
281
|
-
_this.
|
|
282
|
-
|
|
283
|
-
_this.isScreenSharingSupported(sessionSettings.isScreenSharingCapabilitiesEnabled);
|
|
276
|
+
_this.initPublisher(settings);
|
|
284
277
|
});
|
|
285
278
|
} catch (err) {
|
|
286
279
|
trace.error(JSON.stringify(err));
|
|
@@ -294,14 +287,13 @@ function (_super) {
|
|
|
294
287
|
};
|
|
295
288
|
|
|
296
289
|
_this.disconnect = function () {
|
|
297
|
-
var _a
|
|
290
|
+
var _a;
|
|
298
291
|
|
|
299
292
|
try {
|
|
300
293
|
trace.info('Disconnecting from session');
|
|
301
294
|
|
|
302
295
|
if (_this.session) {
|
|
303
|
-
(_a = _this.
|
|
304
|
-
(_b = _this.screenPublisher) === null || _b === void 0 ? void 0 : _b.destroy();
|
|
296
|
+
(_a = _this.publisher) === null || _a === void 0 ? void 0 : _a.destroy();
|
|
305
297
|
|
|
306
298
|
_this.session.disconnect();
|
|
307
299
|
|
|
@@ -312,33 +304,28 @@ function (_super) {
|
|
|
312
304
|
}
|
|
313
305
|
};
|
|
314
306
|
|
|
315
|
-
_this.takeSnapshot = function (connectionId
|
|
316
|
-
var _a, _b
|
|
317
|
-
|
|
318
|
-
if (videoType === void 0) {
|
|
319
|
-
videoType = MediaConstants_1.VideoTypesEnum.CAMERA;
|
|
320
|
-
}
|
|
307
|
+
_this.takeSnapshot = function (connectionId) {
|
|
308
|
+
var _a, _b;
|
|
321
309
|
|
|
322
310
|
if (!connectionId) {
|
|
323
311
|
return null;
|
|
324
312
|
}
|
|
325
313
|
|
|
326
314
|
if (connectionId === _this.ownConnectionId) {
|
|
327
|
-
|
|
328
|
-
return ((_a = _this.videoPublisher) === null || _a === void 0 ? void 0 : _a.getImgData()) || null;
|
|
329
|
-
}
|
|
330
|
-
|
|
331
|
-
return ((_b = _this.screenPublisher) === null || _b === void 0 ? void 0 : _b.getImgData()) || null;
|
|
315
|
+
return ((_a = _this.publisher) === null || _a === void 0 ? void 0 : _a.getImgData()) || null;
|
|
332
316
|
}
|
|
333
317
|
|
|
334
|
-
return ((
|
|
335
|
-
return s.connectionId === connectionId
|
|
336
|
-
})) === null ||
|
|
318
|
+
return ((_b = _this.subscribers.find(function (s) {
|
|
319
|
+
return s.connectionId === connectionId;
|
|
320
|
+
})) === null || _b === void 0 ? void 0 : _b.subscriber.getImgData()) || null;
|
|
337
321
|
};
|
|
338
322
|
|
|
339
|
-
_this.
|
|
323
|
+
_this.initPublisher = function (settings) {
|
|
340
324
|
return __awaiter(_this, void 0, void 0, function () {
|
|
341
325
|
var canStartWithAudio, canStartWithVideo, capabilitiesService, publisherOptions;
|
|
326
|
+
|
|
327
|
+
var _this = this;
|
|
328
|
+
|
|
342
329
|
return __generator(this, function (_a) {
|
|
343
330
|
switch (_a.label) {
|
|
344
331
|
case 0:
|
|
@@ -372,17 +359,32 @@ function (_super) {
|
|
|
372
359
|
}
|
|
373
360
|
|
|
374
361
|
publisherOptions = {
|
|
375
|
-
|
|
376
|
-
|
|
362
|
+
participantId: this.getParticipantId(this.ownConnectionId),
|
|
363
|
+
backgroundImageURI: this.backgroundImageURI
|
|
377
364
|
};
|
|
378
365
|
|
|
379
366
|
try {
|
|
380
|
-
this.
|
|
381
|
-
cameraEnabled: settings.
|
|
382
|
-
startWithAudioMuted: settings.
|
|
383
|
-
}), publisherOptions, capabilitiesService);
|
|
384
|
-
|
|
385
|
-
this.
|
|
367
|
+
this.publisher = new OpentokPublisher_1.OpentokPublisher(__assign(__assign({}, settings), {
|
|
368
|
+
cameraEnabled: settings.cameraEnabled && canStartWithVideo,
|
|
369
|
+
startWithAudioMuted: settings.startWithAudioMuted && canStartWithAudio
|
|
370
|
+
}), publisherOptions, capabilitiesService); // forward publisher events
|
|
371
|
+
|
|
372
|
+
this.publisher.on('cameraSourceChanged', function (e) {
|
|
373
|
+
return _this.emit(MultipartyServiceEventTypes_1.MultiPartyServiceEventTypes.cameraSourceChanged, e);
|
|
374
|
+
});
|
|
375
|
+
this.publisher.on('streamCreated', function (e) {
|
|
376
|
+
return _this.emit(MultipartyServiceEventTypes_1.MultiPartyServiceEventTypes.streamCreated, e);
|
|
377
|
+
});
|
|
378
|
+
this.publisher.on('streamDestroyed', function (e) {
|
|
379
|
+
return _this.emit(MultipartyServiceEventTypes_1.MultiPartyServiceEventTypes.streamDestroyed, e);
|
|
380
|
+
});
|
|
381
|
+
this.publisher.on('mediaDeviceAccessDenied', function (e) {
|
|
382
|
+
return _this.emit(MultipartyServiceEventTypes_1.MultiPartyServiceEventTypes.mediaDeviceAccessDenied, e);
|
|
383
|
+
});
|
|
384
|
+
this.publisher.on('videoElementCreated', function () {
|
|
385
|
+
return _this.emit(MultipartyServiceEventTypes_1.MultiPartyServiceEventTypes.videoElementCreated);
|
|
386
|
+
});
|
|
387
|
+
this.session.publish(this.publisher.get(), trace_1.traceError);
|
|
386
388
|
} catch (error) {
|
|
387
389
|
trace.error('could not init publisher');
|
|
388
390
|
}
|
|
@@ -395,66 +397,6 @@ function (_super) {
|
|
|
395
397
|
});
|
|
396
398
|
};
|
|
397
399
|
|
|
398
|
-
_this.isScreenSharingSupported = function (isScreenSharingCapabilitiesEnabled) {
|
|
399
|
-
return __awaiter(_this, void 0, void 0, function () {
|
|
400
|
-
var _this = this;
|
|
401
|
-
|
|
402
|
-
return __generator(this, function (_a) {
|
|
403
|
-
switch (_a.label) {
|
|
404
|
-
case 0:
|
|
405
|
-
if (!(isScreenSharingCapabilitiesEnabled && !MediaCapabilitiesUtils_1.checkIsMobile())) return [3
|
|
406
|
-
/*break*/
|
|
407
|
-
, 2];
|
|
408
|
-
return [4
|
|
409
|
-
/*yield*/
|
|
410
|
-
, OT.checkScreenSharingCapability(function (res) {
|
|
411
|
-
if (!res.supported || res.extensionRegistered === false) {
|
|
412
|
-
// This browser does not support screen sharing.
|
|
413
|
-
trace.error('no screen sharing support found');
|
|
414
|
-
_this.enableDesktopSharing = false;
|
|
415
|
-
} else {
|
|
416
|
-
_this.enableDesktopSharing = true;
|
|
417
|
-
}
|
|
418
|
-
})];
|
|
419
|
-
|
|
420
|
-
case 1:
|
|
421
|
-
_a.sent();
|
|
422
|
-
|
|
423
|
-
return [3
|
|
424
|
-
/*break*/
|
|
425
|
-
, 3];
|
|
426
|
-
|
|
427
|
-
case 2:
|
|
428
|
-
this.enableDesktopSharing = false;
|
|
429
|
-
_a.label = 3;
|
|
430
|
-
|
|
431
|
-
case 3:
|
|
432
|
-
return [2
|
|
433
|
-
/*return*/
|
|
434
|
-
, Promise.resolve(this.enableDesktopSharing)];
|
|
435
|
-
}
|
|
436
|
-
});
|
|
437
|
-
});
|
|
438
|
-
};
|
|
439
|
-
|
|
440
|
-
_this.forwardPublisherEvents = function (publisher) {
|
|
441
|
-
publisher.on('cameraSourceChanged', function (e) {
|
|
442
|
-
return _this.emit(MultipartyServiceEventTypes_1.MultiPartyServiceEventTypes.cameraSourceChanged, e);
|
|
443
|
-
});
|
|
444
|
-
publisher.on('streamCreated', function (e) {
|
|
445
|
-
return _this.emit(MultipartyServiceEventTypes_1.MultiPartyServiceEventTypes.streamCreated, e);
|
|
446
|
-
});
|
|
447
|
-
publisher.on('streamDestroyed', function (e) {
|
|
448
|
-
return _this.emit(MultipartyServiceEventTypes_1.MultiPartyServiceEventTypes.streamDestroyed, e);
|
|
449
|
-
});
|
|
450
|
-
publisher.on('mediaDeviceAccessDenied', function (e) {
|
|
451
|
-
return _this.emit(MultipartyServiceEventTypes_1.MultiPartyServiceEventTypes.mediaDeviceAccessDenied, e);
|
|
452
|
-
});
|
|
453
|
-
publisher.on('videoElementCreated', function () {
|
|
454
|
-
return _this.emit(MultipartyServiceEventTypes_1.MultiPartyServiceEventTypes.videoElementCreated);
|
|
455
|
-
});
|
|
456
|
-
};
|
|
457
|
-
|
|
458
400
|
_this.publishAudio = function (shouldMute) {
|
|
459
401
|
return __awaiter(_this, void 0, void 0, function () {
|
|
460
402
|
var canPublishAudio;
|
|
@@ -478,7 +420,7 @@ function (_super) {
|
|
|
478
420
|
];
|
|
479
421
|
}
|
|
480
422
|
|
|
481
|
-
(_a = this.
|
|
423
|
+
(_a = this.publisher) === null || _a === void 0 ? void 0 : _a.publishAudio(shouldMute);
|
|
482
424
|
return [2
|
|
483
425
|
/*return*/
|
|
484
426
|
];
|
|
@@ -510,50 +452,7 @@ function (_super) {
|
|
|
510
452
|
];
|
|
511
453
|
}
|
|
512
454
|
|
|
513
|
-
(_a = this.
|
|
514
|
-
return [2
|
|
515
|
-
/*return*/
|
|
516
|
-
];
|
|
517
|
-
}
|
|
518
|
-
});
|
|
519
|
-
});
|
|
520
|
-
};
|
|
521
|
-
|
|
522
|
-
_this.publishScreen = function () {
|
|
523
|
-
return __awaiter(_this, void 0, void 0, function () {
|
|
524
|
-
var publisherOptions, capabilitiesService;
|
|
525
|
-
|
|
526
|
-
var _a;
|
|
527
|
-
|
|
528
|
-
return __generator(this, function (_b) {
|
|
529
|
-
switch (_b.label) {
|
|
530
|
-
case 0:
|
|
531
|
-
if (!this.enableDesktopSharing) return [3
|
|
532
|
-
/*break*/
|
|
533
|
-
, 2];
|
|
534
|
-
publisherOptions = {
|
|
535
|
-
backgroundImageURI: this.backgroundImageURI
|
|
536
|
-
};
|
|
537
|
-
return [4
|
|
538
|
-
/*yield*/
|
|
539
|
-
, MediaCapabilitiesService_1.MediaCapabilitiesService.getInstance()];
|
|
540
|
-
|
|
541
|
-
case 1:
|
|
542
|
-
capabilitiesService = _b.sent();
|
|
543
|
-
|
|
544
|
-
try {
|
|
545
|
-
this.screenPublisher = new OpentokScreenPublisher_1.OpentokScreenPublisher(__assign(__assign({}, publisherOptions), {
|
|
546
|
-
participantId: this.getParticipantId(this.ownConnectionId, MediaConstants_1.VideoTypesEnum.SCREEN)
|
|
547
|
-
}), capabilitiesService);
|
|
548
|
-
this.forwardPublisherEvents(this.screenPublisher);
|
|
549
|
-
this.screenPublisher && ((_a = this.session) === null || _a === void 0 ? void 0 : _a.publish(this.screenPublisher.get(), trace_1.traceError));
|
|
550
|
-
} catch (e) {
|
|
551
|
-
trace.error('Failed to publish screen', e);
|
|
552
|
-
}
|
|
553
|
-
|
|
554
|
-
_b.label = 2;
|
|
555
|
-
|
|
556
|
-
case 2:
|
|
455
|
+
(_a = this.publisher) === null || _a === void 0 ? void 0 : _a.publishVideo(shouldPublishVideo);
|
|
557
456
|
return [2
|
|
558
457
|
/*return*/
|
|
559
458
|
];
|
|
@@ -569,57 +468,52 @@ function (_super) {
|
|
|
569
468
|
return __generator(this, function (_b) {
|
|
570
469
|
return [2
|
|
571
470
|
/*return*/
|
|
572
|
-
, (_a = this.
|
|
471
|
+
, (_a = this.publisher) === null || _a === void 0 ? void 0 : _a.switchCamera()];
|
|
573
472
|
});
|
|
574
473
|
});
|
|
575
474
|
};
|
|
576
475
|
|
|
577
476
|
_this.reinitializeStreams = function (settings) {
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
var promises = [];
|
|
581
|
-
|
|
582
|
-
if (!_this.session) {
|
|
583
|
-
return Promise.resolve([]);
|
|
584
|
-
}
|
|
585
|
-
|
|
586
|
-
var shouldPublishScreen = !!_this.screenPublisher;
|
|
587
|
-
|
|
588
|
-
_this.subscriberList.map(function (s) {
|
|
589
|
-
return s.subscriber;
|
|
590
|
-
}).forEach((_a = _this.session) === null || _a === void 0 ? void 0 : _a.unsubscribe);
|
|
591
|
-
|
|
592
|
-
_this.subscriberList = [];
|
|
593
|
-
(_b = _this.videoPublisher) === null || _b === void 0 ? void 0 : _b.destroy();
|
|
594
|
-
(_c = _this.screenPublisher) === null || _c === void 0 ? void 0 : _c.destroy();
|
|
595
|
-
promises.push(_this.initVideoPublisher(settings));
|
|
477
|
+
return __awaiter(_this, void 0, void 0, function () {
|
|
478
|
+
var _a, _b;
|
|
596
479
|
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
480
|
+
return __generator(this, function (_c) {
|
|
481
|
+
if (!this.session) {
|
|
482
|
+
return [2
|
|
483
|
+
/*return*/
|
|
484
|
+
];
|
|
485
|
+
}
|
|
600
486
|
|
|
601
|
-
|
|
487
|
+
this.subscriberList.map(function (s) {
|
|
488
|
+
return s.subscriber;
|
|
489
|
+
}).forEach((_a = this.session) === null || _a === void 0 ? void 0 : _a.unsubscribe);
|
|
490
|
+
this.subscriberList = [];
|
|
491
|
+
(_b = this.publisher) === null || _b === void 0 ? void 0 : _b.destroy();
|
|
492
|
+
return [2
|
|
493
|
+
/*return*/
|
|
494
|
+
, this.initPublisher(settings)];
|
|
495
|
+
});
|
|
496
|
+
});
|
|
602
497
|
};
|
|
603
498
|
|
|
604
499
|
_this.streamCreatedHandler = function (event) {
|
|
605
500
|
return __awaiter(_this, void 0, void 0, function () {
|
|
606
|
-
var stream, connection, hasAudio, hasVideo, videoDimensions,
|
|
501
|
+
var stream, connection, hasAudio, hasVideo, videoDimensions, connectionId, data, participantId, clientRole, subscriber;
|
|
607
502
|
return __generator(this, function (_a) {
|
|
608
503
|
trace.info('streamCreatedHandler', event.stream);
|
|
609
504
|
stream = event.stream;
|
|
610
|
-
connection = stream.connection, hasAudio = stream.hasAudio, hasVideo = stream.hasVideo, videoDimensions = stream.videoDimensions
|
|
505
|
+
connection = stream.connection, hasAudio = stream.hasAudio, hasVideo = stream.hasVideo, videoDimensions = stream.videoDimensions;
|
|
611
506
|
connectionId = connection.connectionId, data = connection.data;
|
|
612
|
-
participantId = this.getParticipantId(connectionId
|
|
507
|
+
participantId = this.getParticipantId(connectionId);
|
|
613
508
|
clientRole = utils_1.decodeClientRole(data);
|
|
614
509
|
|
|
615
510
|
if (this.ownConnectionId && stream && connectionId !== this.ownConnectionId) {
|
|
616
511
|
if (this.subscriberList.length < MultiPartyService_1.maxParticipantsNumber - 1) {
|
|
617
|
-
subscriber = OpentokSubscriber_1.createSubscriber(this.session, stream, this.getParticipantId(connectionId
|
|
512
|
+
subscriber = OpentokSubscriber_1.createSubscriber(this.session, stream, this.getParticipantId(connectionId), this.backgroundImageURI);
|
|
618
513
|
this.subscriberList.push({
|
|
619
514
|
subscriber: subscriber,
|
|
620
515
|
connectionId: connectionId,
|
|
621
|
-
clientRole: clientRole
|
|
622
|
-
videoType: videoType
|
|
516
|
+
clientRole: clientRole
|
|
623
517
|
});
|
|
624
518
|
} else {
|
|
625
519
|
trace.info("a new subscriber cannot be added, as the number of participants reached its limit: " + MultiPartyService_1.maxParticipantsNumber);
|
|
@@ -634,8 +528,7 @@ function (_super) {
|
|
|
634
528
|
hasAudio: hasAudio,
|
|
635
529
|
isOwnConnection: false,
|
|
636
530
|
mirror: false,
|
|
637
|
-
videoDimensions: videoDimensions
|
|
638
|
-
videoType: videoType
|
|
531
|
+
videoDimensions: videoDimensions
|
|
639
532
|
});
|
|
640
533
|
return [2
|
|
641
534
|
/*return*/
|
|
@@ -646,23 +539,17 @@ function (_super) {
|
|
|
646
539
|
|
|
647
540
|
_this.streamDestroyedHandler = function (event) {
|
|
648
541
|
trace.info('streamDestroyedHandler', event);
|
|
649
|
-
var
|
|
650
|
-
connection = _a.connection,
|
|
651
|
-
videoType = _a.videoType;
|
|
542
|
+
var connection = event.stream.connection;
|
|
652
543
|
var connectionId = connection.connectionId;
|
|
653
544
|
_this.subscriberList = _this.subscriberList.filter(function (subscriber) {
|
|
654
|
-
return
|
|
655
|
-
connectionId: connectionId,
|
|
656
|
-
videoType: videoType
|
|
657
|
-
});
|
|
545
|
+
return subscriber.connectionId !== connectionId;
|
|
658
546
|
});
|
|
659
547
|
|
|
660
548
|
_this.emit(MultipartyServiceEventTypes_1.MultiPartyServiceEventTypes.streamDestroyed, {
|
|
661
|
-
participantId: _this.getParticipantId(connectionId
|
|
549
|
+
participantId: _this.getParticipantId(connectionId),
|
|
662
550
|
connectionId: connectionId,
|
|
663
551
|
isOwnConnection: false,
|
|
664
|
-
clientRole: utils_1.decodeClientRole(connection.data)
|
|
665
|
-
videoType: videoType
|
|
552
|
+
clientRole: utils_1.decodeClientRole(connection.data)
|
|
666
553
|
});
|
|
667
554
|
};
|
|
668
555
|
|
|
@@ -708,14 +595,13 @@ function (_super) {
|
|
|
708
595
|
hasVideo = _a.hasVideo,
|
|
709
596
|
hasAudio = _a.hasAudio,
|
|
710
597
|
connection = _a.connection,
|
|
711
|
-
videoDimensions = _a.videoDimensions
|
|
712
|
-
videoType = _a.videoType;
|
|
598
|
+
videoDimensions = _a.videoDimensions;
|
|
713
599
|
var connectionId = connection.connectionId;
|
|
714
600
|
|
|
715
601
|
_this.emit(MultipartyServiceEventTypes_1.MultiPartyServiceEventTypes.streamPropertyChanged, {
|
|
716
602
|
hasVideo: hasVideo,
|
|
717
603
|
hasAudio: hasAudio,
|
|
718
|
-
participantId: _this.getParticipantId(connectionId
|
|
604
|
+
participantId: _this.getParticipantId(connectionId),
|
|
719
605
|
connectionId: connectionId,
|
|
720
606
|
isOwnConnection: _this.checkOwnConnection(connectionId),
|
|
721
607
|
clientRole: utils_1.decodeClientRole(connection.data),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["MultiParty/opentok/OpentokMultiPartyService.js"],"names":["__extends","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","__","constructor","create","__assign","assign","t","s","i","n","arguments","length","apply","__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","Promise","reject","fulfilled","step","next","e","rejected","result","done","then","__generator","body","_","label","sent","trys","ops","f","y","g","verb","Symbol","iterator","v","op","TypeError","pop","push","__spreadArrays","il","r","k","a","j","jl","defineProperty","exports","OpentokMultiPartyService","MediaTracer_1","require","MediaCapabilitiesService_1","MediaCapabilitiesUtils_1","MultiPartyService_1","MultipartyServiceEventTypes_1","OpentokVideoPublisher_1","OpentokScreenPublisher_1","OpentokSubscriber_1","utils_1","trace_1","MediaConstants_1","trace","getMediaTracer","_super","getParticipantId","_this","enableDesktopSharing","backgroundImageURI","DEFAULT_AVATAR_URI","subscriberList","setBackgroundImageURI","uri","connect","sessionSettings","credentials","session","OT","initSession","apiKey","sessionId","on","connectionCreatedHandler","connectionDestroyedHandler","streamCreatedHandler","streamDestroyedHandler","streamPropertyChangedHandler","sessionDisconnectedHandler","token","error","_a","off","undefined","traceError","emit","MultiPartyServiceEventTypes","connectFailed","meta","err","JSON","stringify","initVideoPublisher","isScreenSharingSupported","isScreenSharingCapabilitiesEnabled","disconnect","_b","info","videoPublisher","destroy","screenPublisher","takeSnapshot","connectionId","videoType","_c","VideoTypesEnum","CAMERA","ownConnectionId","getImgData","subscribers","find","subscriber","settings","canStartWithAudio","canStartWithVideo","capabilitiesService","publisherOptions","checkAudioCapabilities","checkVideoCapabilities","MediaCapabilitiesService","getInstance","Error","participantId","OpentokVideoPublisher","videoSettings","cameraEnabled","startWithAudioMuted","forwardPublisherEvents","publish","get","checkIsMobile","checkScreenSharingCapability","res","supported","extensionRegistered","publisher","cameraSourceChanged","streamCreated","streamDestroyed","mediaDeviceAccessDenied","videoElementCreated","publishAudio","shouldMute","canPublishAudio","publishVideo","shouldPublishVideo","canPublishVideo","publishScreen","OpentokScreenPublisher","SCREEN","switchCamera","reinitializeStreams","promises","shouldPublishScreen","map","forEach","unsubscribe","all","event","stream","connection","hasAudio","hasVideo","videoDimensions","data","clientRole","decodeClientRole","maxParticipantsNumber","createSubscriber","isOwnConnection","mirror","filter","isSameStream","connectionCreated","checkOwnConnection","connectionDestroyed","streamPropertyChanged","enumerable","configurable","MultiPartyService"],"mappings":"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","file":"OpentokMultiPartyService.js","sourcesContent":["\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.OpentokMultiPartyService = void 0;\nvar MediaTracer_1 = require(\"../MediaTracer\");\nvar MediaCapabilitiesService_1 = require(\"../MediaCapabilitiesService\");\nvar MediaCapabilitiesUtils_1 = require(\"../MediaCapabilitiesUtils\");\nvar MultiPartyService_1 = require(\"../MultiPartyService\");\nvar MultipartyServiceEventTypes_1 = require(\"../MultipartyServiceEventTypes\");\nvar OpentokVideoPublisher_1 = require(\"./OpentokVideoPublisher\");\nvar OpentokScreenPublisher_1 = require(\"./OpentokScreenPublisher\");\nvar OpentokSubscriber_1 = require(\"./OpentokSubscriber\");\nvar utils_1 = require(\"../utils\");\nvar trace_1 = require(\"./trace\");\nvar MediaConstants_1 = require(\"../../MediaConstants\");\nvar trace = MediaTracer_1.getMediaTracer('Multiparty');\nvar OpentokMultiPartyService = /** @class */ (function (_super) {\n __extends(OpentokMultiPartyService, _super);\n function OpentokMultiPartyService(getParticipantId) {\n var _this = _super.call(this) || this;\n _this.getParticipantId = getParticipantId;\n _this.enableDesktopSharing = false;\n _this.backgroundImageURI = MultiPartyService_1.DEFAULT_AVATAR_URI;\n _this.subscriberList = [];\n _this.setBackgroundImageURI = function (uri) {\n _this.backgroundImageURI = uri || MultiPartyService_1.DEFAULT_AVATAR_URI;\n };\n _this.connect = function (sessionSettings, credentials) {\n try {\n _this.session = OT.initSession(credentials.apiKey, credentials.sessionId);\n _this.session.on('connectionCreated', _this.connectionCreatedHandler);\n _this.session.on('connectionDestroyed', _this.connectionDestroyedHandler);\n _this.session.on('streamCreated', _this.streamCreatedHandler);\n _this.session.on('streamDestroyed', _this.streamDestroyedHandler);\n _this.session.on('streamPropertyChanged', _this.streamPropertyChangedHandler);\n _this.session.on('sessionDisconnected', _this.sessionDisconnectedHandler);\n _this.session.connect(credentials.token, function (error) {\n var _a;\n if (error) {\n (_a = _this.session) === null || _a === void 0 ? void 0 : _a.off();\n _this.session = undefined;\n trace_1.traceError(error);\n _this.emit(MultipartyServiceEventTypes_1.MultiPartyServiceEventTypes.connectFailed, {\n meta: { err: JSON.stringify(error) }\n });\n return;\n }\n _this.initVideoPublisher(sessionSettings);\n _this.isScreenSharingSupported(sessionSettings.isScreenSharingCapabilitiesEnabled);\n });\n }\n catch (err) {\n trace.error(JSON.stringify(err));\n _this.emit(MultipartyServiceEventTypes_1.MultiPartyServiceEventTypes.connectFailed, {\n meta: { err: JSON.stringify(err) }\n });\n }\n };\n _this.disconnect = function () {\n var _a, _b;\n try {\n trace.info('Disconnecting from session');\n if (_this.session) {\n (_a = _this.videoPublisher) === null || _a === void 0 ? void 0 : _a.destroy();\n (_b = _this.screenPublisher) === null || _b === void 0 ? void 0 : _b.destroy();\n _this.session.disconnect();\n trace.info('Disconnection from session completed');\n }\n }\n catch (err) {\n trace.error(JSON.stringify(err));\n }\n };\n _this.takeSnapshot = function (connectionId, videoType) {\n var _a, _b, _c;\n if (videoType === void 0) { videoType = MediaConstants_1.VideoTypesEnum.CAMERA; }\n if (!connectionId) {\n return null;\n }\n if (connectionId === _this.ownConnectionId) {\n if (videoType === MediaConstants_1.VideoTypesEnum.CAMERA) {\n return ((_a = _this.videoPublisher) === null || _a === void 0 ? void 0 : _a.getImgData()) || null;\n }\n return ((_b = _this.screenPublisher) === null || _b === void 0 ? void 0 : _b.getImgData()) || null;\n }\n return (((_c = _this.subscribers\n .find(function (s) { return s.connectionId === connectionId && s.videoType === videoType; })) === null || _c === void 0 ? void 0 : _c.subscriber.getImgData()) || null);\n };\n _this.initVideoPublisher = function (settings) { return __awaiter(_this, void 0, void 0, function () {\n var canStartWithAudio, canStartWithVideo, capabilitiesService, publisherOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!this.session) {\n return [2 /*return*/];\n }\n return [4 /*yield*/, MediaCapabilitiesUtils_1.checkAudioCapabilities()];\n case 1:\n canStartWithAudio = _a.sent();\n return [4 /*yield*/, MediaCapabilitiesUtils_1.checkVideoCapabilities()];\n case 2:\n canStartWithVideo = _a.sent();\n return [4 /*yield*/, MediaCapabilitiesService_1.MediaCapabilitiesService.getInstance()];\n case 3:\n capabilitiesService = _a.sent();\n if (!canStartWithAudio && !canStartWithVideo) {\n throw new Error('Creating session requires initialized publisher');\n }\n publisherOptions = {\n backgroundImageURI: this.backgroundImageURI,\n participantId: this.getParticipantId(this.ownConnectionId, MediaConstants_1.VideoTypesEnum.CAMERA)\n };\n try {\n this.videoPublisher = new OpentokVideoPublisher_1.OpentokVideoPublisher(__assign(__assign({}, settings.videoSettings), { cameraEnabled: settings.videoSettings.cameraEnabled && canStartWithVideo, startWithAudioMuted: settings.videoSettings.startWithAudioMuted && canStartWithAudio }), publisherOptions, capabilitiesService);\n this.forwardPublisherEvents(this.videoPublisher);\n this.session.publish(this.videoPublisher.get(), trace_1.traceError);\n }\n catch (error) {\n trace.error('could not init publisher');\n }\n return [2 /*return*/];\n }\n });\n }); };\n _this.isScreenSharingSupported = function (isScreenSharingCapabilitiesEnabled) { return __awaiter(_this, void 0, void 0, function () {\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(isScreenSharingCapabilitiesEnabled && !MediaCapabilitiesUtils_1.checkIsMobile())) return [3 /*break*/, 2];\n return [4 /*yield*/, OT.checkScreenSharingCapability(function (res) {\n if (!res.supported || res.extensionRegistered === false) {\n // This browser does not support screen sharing.\n trace.error('no screen sharing support found');\n _this.enableDesktopSharing = false;\n }\n else {\n _this.enableDesktopSharing = true;\n }\n })];\n case 1:\n _a.sent();\n return [3 /*break*/, 3];\n case 2:\n this.enableDesktopSharing = false;\n _a.label = 3;\n case 3: return [2 /*return*/, Promise.resolve(this.enableDesktopSharing)];\n }\n });\n }); };\n _this.forwardPublisherEvents = function (publisher) {\n publisher.on('cameraSourceChanged', function (e) { return _this.emit(MultipartyServiceEventTypes_1.MultiPartyServiceEventTypes.cameraSourceChanged, e); });\n publisher.on('streamCreated', function (e) { return _this.emit(MultipartyServiceEventTypes_1.MultiPartyServiceEventTypes.streamCreated, e); });\n publisher.on('streamDestroyed', function (e) { return _this.emit(MultipartyServiceEventTypes_1.MultiPartyServiceEventTypes.streamDestroyed, e); });\n publisher.on('mediaDeviceAccessDenied', function (e) {\n return _this.emit(MultipartyServiceEventTypes_1.MultiPartyServiceEventTypes.mediaDeviceAccessDenied, e);\n });\n publisher.on('videoElementCreated', function () { return _this.emit(MultipartyServiceEventTypes_1.MultiPartyServiceEventTypes.videoElementCreated); });\n };\n _this.publishAudio = function (shouldMute) { return __awaiter(_this, void 0, void 0, function () {\n var canPublishAudio;\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, MediaCapabilitiesUtils_1.checkAudioCapabilities()];\n case 1:\n canPublishAudio = _b.sent();\n if (shouldMute && !canPublishAudio) {\n trace.error('could not publish audio');\n return [2 /*return*/];\n }\n (_a = this.videoPublisher) === null || _a === void 0 ? void 0 : _a.publishAudio(shouldMute);\n return [2 /*return*/];\n }\n });\n }); };\n _this.publishVideo = function (shouldPublishVideo) { return __awaiter(_this, void 0, void 0, function () {\n var canPublishVideo;\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, MediaCapabilitiesUtils_1.checkVideoCapabilities()];\n case 1:\n canPublishVideo = _b.sent();\n if (shouldPublishVideo && !canPublishVideo) {\n trace.error('could not publish video');\n return [2 /*return*/];\n }\n (_a = this.videoPublisher) === null || _a === void 0 ? void 0 : _a.publishVideo(shouldPublishVideo);\n return [2 /*return*/];\n }\n });\n }); };\n _this.publishScreen = function () { return __awaiter(_this, void 0, void 0, function () {\n var publisherOptions, capabilitiesService;\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!this.enableDesktopSharing) return [3 /*break*/, 2];\n publisherOptions = {\n backgroundImageURI: this.backgroundImageURI\n };\n return [4 /*yield*/, MediaCapabilitiesService_1.MediaCapabilitiesService.getInstance()];\n case 1:\n capabilitiesService = _b.sent();\n try {\n this.screenPublisher = new OpentokScreenPublisher_1.OpentokScreenPublisher(__assign(__assign({}, publisherOptions), { participantId: this.getParticipantId(this.ownConnectionId, MediaConstants_1.VideoTypesEnum.SCREEN) }), capabilitiesService);\n this.forwardPublisherEvents(this.screenPublisher);\n this.screenPublisher && ((_a = this.session) === null || _a === void 0 ? void 0 : _a.publish(this.screenPublisher.get(), trace_1.traceError));\n }\n catch (e) {\n trace.error('Failed to publish screen', e);\n }\n _b.label = 2;\n case 2: return [2 /*return*/];\n }\n });\n }); };\n _this.switchCamera = function () { return __awaiter(_this, void 0, void 0, function () { var _a; return __generator(this, function (_b) {\n return [2 /*return*/, (_a = this.videoPublisher) === null || _a === void 0 ? void 0 : _a.switchCamera()];\n }); }); };\n _this.reinitializeStreams = function (settings) {\n var _a, _b, _c;\n var promises = [];\n if (!_this.session) {\n return Promise.resolve([]);\n }\n var shouldPublishScreen = !!_this.screenPublisher;\n _this.subscriberList.map(function (s) { return s.subscriber; }).forEach((_a = _this.session) === null || _a === void 0 ? void 0 : _a.unsubscribe);\n _this.subscriberList = [];\n (_b = _this.videoPublisher) === null || _b === void 0 ? void 0 : _b.destroy();\n (_c = _this.screenPublisher) === null || _c === void 0 ? void 0 : _c.destroy();\n promises.push(_this.initVideoPublisher(settings));\n if (shouldPublishScreen) {\n promises.push(_this.publishScreen());\n }\n return Promise.all(promises);\n };\n _this.streamCreatedHandler = function (event) { return __awaiter(_this, void 0, void 0, function () {\n var stream, connection, hasAudio, hasVideo, videoDimensions, videoType, connectionId, data, participantId, clientRole, subscriber;\n return __generator(this, function (_a) {\n trace.info('streamCreatedHandler', event.stream);\n stream = event.stream;\n connection = stream.connection, hasAudio = stream.hasAudio, hasVideo = stream.hasVideo, videoDimensions = stream.videoDimensions, videoType = stream.videoType;\n connectionId = connection.connectionId, data = connection.data;\n participantId = this.getParticipantId(connectionId, videoType);\n clientRole = utils_1.decodeClientRole(data);\n if (this.ownConnectionId && stream && connectionId !== this.ownConnectionId) {\n if (this.subscriberList.length < MultiPartyService_1.maxParticipantsNumber - 1) {\n subscriber = OpentokSubscriber_1.createSubscriber(this.session, stream, this.getParticipantId(connectionId, videoType), this.backgroundImageURI);\n this.subscriberList.push({\n subscriber: subscriber,\n connectionId: connectionId,\n clientRole: clientRole,\n videoType: videoType\n });\n }\n else {\n trace.info(\"a new subscriber cannot be added, as the number of participants reached its limit: \" + MultiPartyService_1.maxParticipantsNumber);\n }\n }\n this.emit(MultipartyServiceEventTypes_1.MultiPartyServiceEventTypes.streamCreated, {\n participantId: participantId,\n clientRole: clientRole,\n connectionId: connectionId,\n hasVideo: hasVideo,\n hasAudio: hasAudio,\n isOwnConnection: false,\n mirror: false,\n videoDimensions: videoDimensions,\n videoType: videoType\n });\n return [2 /*return*/];\n });\n }); };\n _this.streamDestroyedHandler = function (event) {\n trace.info('streamDestroyedHandler', event);\n var _a = event.stream, connection = _a.connection, videoType = _a.videoType;\n var connectionId = connection.connectionId;\n _this.subscriberList = _this.subscriberList.filter(function (subscriber) { return !utils_1.isSameStream(__assign({}, subscriber), { connectionId: connectionId, videoType: videoType }); });\n _this.emit(MultipartyServiceEventTypes_1.MultiPartyServiceEventTypes.streamDestroyed, {\n participantId: _this.getParticipantId(connectionId, videoType),\n connectionId: connectionId,\n isOwnConnection: false,\n clientRole: utils_1.decodeClientRole(connection.data),\n videoType: videoType\n });\n };\n _this.connectionCreatedHandler = function (event) {\n trace.info('connectionCreatedHandler', event);\n var connection = event.connection;\n var connectionId = connection.connectionId;\n if (!_this.ownConnectionId || !connection) {\n return;\n }\n _this.emit(MultipartyServiceEventTypes_1.MultiPartyServiceEventTypes.connectionCreated, {\n clientRole: utils_1.decodeClientRole(connection.data),\n participantId: _this.getParticipantId(connectionId),\n connectionId: connectionId,\n isOwnConnection: _this.checkOwnConnection(connectionId)\n });\n };\n _this.connectionDestroyedHandler = function (event) {\n var connection = event.connection;\n var connectionId = connection.connectionId;\n trace.info('connectionDestroyedHandler', event);\n _this.emit(MultipartyServiceEventTypes_1.MultiPartyServiceEventTypes.connectionDestroyed, {\n clientRole: utils_1.decodeClientRole(connection.data),\n participantId: _this.getParticipantId(connectionId),\n connectionId: connectionId,\n isOwnConnection: _this.checkOwnConnection(connectionId)\n });\n if (connectionId !== _this.ownConnectionId || !_this.ownConnectionId) {\n return;\n }\n _this.session = undefined;\n };\n _this.streamPropertyChangedHandler = function (event) {\n trace.info('streamPropertyChangedHandler', event);\n var _a = event.stream, hasVideo = _a.hasVideo, hasAudio = _a.hasAudio, connection = _a.connection, videoDimensions = _a.videoDimensions, videoType = _a.videoType;\n var connectionId = connection.connectionId;\n _this.emit(MultipartyServiceEventTypes_1.MultiPartyServiceEventTypes.streamPropertyChanged, {\n hasVideo: hasVideo,\n hasAudio: hasAudio,\n participantId: _this.getParticipantId(connectionId, videoType),\n connectionId: connectionId,\n isOwnConnection: _this.checkOwnConnection(connectionId),\n clientRole: utils_1.decodeClientRole(connection.data),\n videoDimensions: videoDimensions\n });\n };\n _this.sessionDisconnectedHandler = function (event) {\n trace.info('sessionDisconnectedHandler', event);\n };\n _this.checkOwnConnection = function (connectionId) {\n return _this.ownConnectionId !== undefined && _this.ownConnectionId === connectionId;\n };\n return _this;\n }\n Object.defineProperty(OpentokMultiPartyService.prototype, \"ownConnectionId\", {\n get: function () {\n var _a, _b;\n return ((_b = (_a = this.session) === null || _a === void 0 ? void 0 : _a.connection) === null || _b === void 0 ? void 0 : _b.connectionId) || '';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(OpentokMultiPartyService.prototype, \"subscribers\", {\n get: function () {\n return __spreadArrays(this.subscriberList);\n },\n enumerable: false,\n configurable: true\n });\n return OpentokMultiPartyService;\n}(MultiPartyService_1.MultiPartyService));\nexports.OpentokMultiPartyService = OpentokMultiPartyService;\n\n//# sourceMappingURL=OpentokMultiPartyService.js.map\n"]}
|
|
1
|
+
{"version":3,"sources":["MultiParty/opentok/OpentokMultiPartyService.js"],"names":["__extends","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","__","constructor","create","__assign","assign","t","s","i","n","arguments","length","apply","__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","Promise","reject","fulfilled","step","next","e","rejected","result","done","then","__generator","body","_","label","sent","trys","ops","f","y","g","verb","Symbol","iterator","v","op","TypeError","pop","push","__spreadArrays","il","r","k","a","j","jl","defineProperty","exports","OpentokMultiPartyService","MediaTracer_1","require","MediaCapabilitiesService_1","MediaCapabilitiesUtils_1","MultiPartyService_1","MultipartyServiceEventTypes_1","OpentokPublisher_1","OpentokSubscriber_1","utils_1","trace_1","trace","getMediaTracer","_super","getParticipantId","_this","backgroundImageURI","DEFAULT_AVATAR_URI","subscriberList","setBackgroundImageURI","uri","connect","settings","credentials","session","OT","initSession","apiKey","sessionId","on","connectionCreatedHandler","connectionDestroyedHandler","streamCreatedHandler","streamDestroyedHandler","streamPropertyChangedHandler","sessionDisconnectedHandler","token","error","_a","off","undefined","traceError","emit","MultiPartyServiceEventTypes","connectFailed","meta","err","JSON","stringify","initPublisher","disconnect","info","publisher","destroy","takeSnapshot","connectionId","_b","ownConnectionId","getImgData","subscribers","find","subscriber","canStartWithAudio","canStartWithVideo","capabilitiesService","publisherOptions","checkAudioCapabilities","checkVideoCapabilities","MediaCapabilitiesService","getInstance","Error","participantId","OpentokPublisher","cameraEnabled","startWithAudioMuted","cameraSourceChanged","streamCreated","streamDestroyed","mediaDeviceAccessDenied","videoElementCreated","publish","get","publishAudio","shouldMute","canPublishAudio","publishVideo","shouldPublishVideo","canPublishVideo","switchCamera","reinitializeStreams","_c","map","forEach","unsubscribe","event","stream","connection","hasAudio","hasVideo","videoDimensions","data","clientRole","decodeClientRole","maxParticipantsNumber","createSubscriber","isOwnConnection","mirror","filter","connectionCreated","checkOwnConnection","connectionDestroyed","streamPropertyChanged","enumerable","configurable","MultiPartyService"],"mappings":"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","file":"OpentokMultiPartyService.js","sourcesContent":["\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.OpentokMultiPartyService = void 0;\nvar MediaTracer_1 = require(\"../MediaTracer\");\nvar MediaCapabilitiesService_1 = require(\"../MediaCapabilitiesService\");\nvar MediaCapabilitiesUtils_1 = require(\"../MediaCapabilitiesUtils\");\nvar MultiPartyService_1 = require(\"../MultiPartyService\");\nvar MultipartyServiceEventTypes_1 = require(\"../MultipartyServiceEventTypes\");\nvar OpentokPublisher_1 = require(\"./OpentokPublisher\");\nvar OpentokSubscriber_1 = require(\"./OpentokSubscriber\");\nvar utils_1 = require(\"../utils\");\nvar trace_1 = require(\"./trace\");\nvar trace = MediaTracer_1.getMediaTracer('Multiparty');\nvar OpentokMultiPartyService = /** @class */ (function (_super) {\n __extends(OpentokMultiPartyService, _super);\n function OpentokMultiPartyService(getParticipantId) {\n var _this = _super.call(this) || this;\n _this.getParticipantId = getParticipantId;\n _this.backgroundImageURI = MultiPartyService_1.DEFAULT_AVATAR_URI;\n _this.subscriberList = [];\n _this.setBackgroundImageURI = function (uri) {\n _this.backgroundImageURI = uri || MultiPartyService_1.DEFAULT_AVATAR_URI;\n };\n _this.connect = function (settings, credentials) {\n try {\n _this.session = OT.initSession(credentials.apiKey, credentials.sessionId);\n _this.session.on('connectionCreated', _this.connectionCreatedHandler);\n _this.session.on('connectionDestroyed', _this.connectionDestroyedHandler);\n _this.session.on('streamCreated', _this.streamCreatedHandler);\n _this.session.on('streamDestroyed', _this.streamDestroyedHandler);\n _this.session.on('streamPropertyChanged', _this.streamPropertyChangedHandler);\n _this.session.on('sessionDisconnected', _this.sessionDisconnectedHandler);\n _this.session.connect(credentials.token, function (error) {\n var _a;\n if (error) {\n (_a = _this.session) === null || _a === void 0 ? void 0 : _a.off();\n _this.session = undefined;\n trace_1.traceError(error);\n _this.emit(MultipartyServiceEventTypes_1.MultiPartyServiceEventTypes.connectFailed, {\n meta: { err: JSON.stringify(error) }\n });\n return;\n }\n _this.initPublisher(settings);\n });\n }\n catch (err) {\n trace.error(JSON.stringify(err));\n _this.emit(MultipartyServiceEventTypes_1.MultiPartyServiceEventTypes.connectFailed, {\n meta: { err: JSON.stringify(err) }\n });\n }\n };\n _this.disconnect = function () {\n var _a;\n try {\n trace.info('Disconnecting from session');\n if (_this.session) {\n (_a = _this.publisher) === null || _a === void 0 ? void 0 : _a.destroy();\n _this.session.disconnect();\n trace.info('Disconnection from session completed');\n }\n }\n catch (err) {\n trace.error(JSON.stringify(err));\n }\n };\n _this.takeSnapshot = function (connectionId) {\n var _a, _b;\n if (!connectionId) {\n return null;\n }\n if (connectionId === _this.ownConnectionId) {\n return ((_a = _this.publisher) === null || _a === void 0 ? void 0 : _a.getImgData()) || null;\n }\n return ((_b = _this.subscribers.find(function (s) { return s.connectionId === connectionId; })) === null || _b === void 0 ? void 0 : _b.subscriber.getImgData()) || null;\n };\n _this.initPublisher = function (settings) { return __awaiter(_this, void 0, void 0, function () {\n var canStartWithAudio, canStartWithVideo, capabilitiesService, publisherOptions;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!this.session) {\n return [2 /*return*/];\n }\n return [4 /*yield*/, MediaCapabilitiesUtils_1.checkAudioCapabilities()];\n case 1:\n canStartWithAudio = _a.sent();\n return [4 /*yield*/, MediaCapabilitiesUtils_1.checkVideoCapabilities()];\n case 2:\n canStartWithVideo = _a.sent();\n return [4 /*yield*/, MediaCapabilitiesService_1.MediaCapabilitiesService.getInstance()];\n case 3:\n capabilitiesService = _a.sent();\n if (!canStartWithAudio && !canStartWithVideo) {\n throw new Error('Creating session requires initialized publisher');\n }\n publisherOptions = {\n participantId: this.getParticipantId(this.ownConnectionId),\n backgroundImageURI: this.backgroundImageURI\n };\n try {\n this.publisher = new OpentokPublisher_1.OpentokPublisher(__assign(__assign({}, settings), { cameraEnabled: settings.cameraEnabled && canStartWithVideo, startWithAudioMuted: settings.startWithAudioMuted && canStartWithAudio }), publisherOptions, capabilitiesService);\n // forward publisher events\n this.publisher.on('cameraSourceChanged', function (e) {\n return _this.emit(MultipartyServiceEventTypes_1.MultiPartyServiceEventTypes.cameraSourceChanged, e);\n });\n this.publisher.on('streamCreated', function (e) { return _this.emit(MultipartyServiceEventTypes_1.MultiPartyServiceEventTypes.streamCreated, e); });\n this.publisher.on('streamDestroyed', function (e) { return _this.emit(MultipartyServiceEventTypes_1.MultiPartyServiceEventTypes.streamDestroyed, e); });\n this.publisher.on('mediaDeviceAccessDenied', function (e) {\n return _this.emit(MultipartyServiceEventTypes_1.MultiPartyServiceEventTypes.mediaDeviceAccessDenied, e);\n });\n this.publisher.on('videoElementCreated', function () { return _this.emit(MultipartyServiceEventTypes_1.MultiPartyServiceEventTypes.videoElementCreated); });\n this.session.publish(this.publisher.get(), trace_1.traceError);\n }\n catch (error) {\n trace.error('could not init publisher');\n }\n return [2 /*return*/];\n }\n });\n }); };\n _this.publishAudio = function (shouldMute) { return __awaiter(_this, void 0, void 0, function () {\n var canPublishAudio;\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, MediaCapabilitiesUtils_1.checkAudioCapabilities()];\n case 1:\n canPublishAudio = _b.sent();\n if (shouldMute && !canPublishAudio) {\n trace.error('could not publish audio');\n return [2 /*return*/];\n }\n (_a = this.publisher) === null || _a === void 0 ? void 0 : _a.publishAudio(shouldMute);\n return [2 /*return*/];\n }\n });\n }); };\n _this.publishVideo = function (shouldPublishVideo) { return __awaiter(_this, void 0, void 0, function () {\n var canPublishVideo;\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, MediaCapabilitiesUtils_1.checkVideoCapabilities()];\n case 1:\n canPublishVideo = _b.sent();\n if (shouldPublishVideo && !canPublishVideo) {\n trace.error('could not publish video');\n return [2 /*return*/];\n }\n (_a = this.publisher) === null || _a === void 0 ? void 0 : _a.publishVideo(shouldPublishVideo);\n return [2 /*return*/];\n }\n });\n }); };\n _this.switchCamera = function () { return __awaiter(_this, void 0, void 0, function () { var _a; return __generator(this, function (_b) {\n return [2 /*return*/, (_a = this.publisher) === null || _a === void 0 ? void 0 : _a.switchCamera()];\n }); }); };\n _this.reinitializeStreams = function (settings) { return __awaiter(_this, void 0, void 0, function () {\n var _a, _b;\n return __generator(this, function (_c) {\n if (!this.session) {\n return [2 /*return*/];\n }\n this.subscriberList.map(function (s) { return s.subscriber; }).forEach((_a = this.session) === null || _a === void 0 ? void 0 : _a.unsubscribe);\n this.subscriberList = [];\n (_b = this.publisher) === null || _b === void 0 ? void 0 : _b.destroy();\n return [2 /*return*/, this.initPublisher(settings)];\n });\n }); };\n _this.streamCreatedHandler = function (event) { return __awaiter(_this, void 0, void 0, function () {\n var stream, connection, hasAudio, hasVideo, videoDimensions, connectionId, data, participantId, clientRole, subscriber;\n return __generator(this, function (_a) {\n trace.info('streamCreatedHandler', event.stream);\n stream = event.stream;\n connection = stream.connection, hasAudio = stream.hasAudio, hasVideo = stream.hasVideo, videoDimensions = stream.videoDimensions;\n connectionId = connection.connectionId, data = connection.data;\n participantId = this.getParticipantId(connectionId);\n clientRole = utils_1.decodeClientRole(data);\n if (this.ownConnectionId && stream && connectionId !== this.ownConnectionId) {\n if (this.subscriberList.length < MultiPartyService_1.maxParticipantsNumber - 1) {\n subscriber = OpentokSubscriber_1.createSubscriber(this.session, stream, this.getParticipantId(connectionId), this.backgroundImageURI);\n this.subscriberList.push({\n subscriber: subscriber,\n connectionId: connectionId,\n clientRole: clientRole\n });\n }\n else {\n trace.info(\"a new subscriber cannot be added, as the number of participants reached its limit: \" + MultiPartyService_1.maxParticipantsNumber);\n }\n }\n this.emit(MultipartyServiceEventTypes_1.MultiPartyServiceEventTypes.streamCreated, {\n participantId: participantId,\n clientRole: clientRole,\n connectionId: connectionId,\n hasVideo: hasVideo,\n hasAudio: hasAudio,\n isOwnConnection: false,\n mirror: false,\n videoDimensions: videoDimensions\n });\n return [2 /*return*/];\n });\n }); };\n _this.streamDestroyedHandler = function (event) {\n trace.info('streamDestroyedHandler', event);\n var connection = event.stream.connection;\n var connectionId = connection.connectionId;\n _this.subscriberList = _this.subscriberList.filter(function (subscriber) { return subscriber.connectionId !== connectionId; });\n _this.emit(MultipartyServiceEventTypes_1.MultiPartyServiceEventTypes.streamDestroyed, {\n participantId: _this.getParticipantId(connectionId),\n connectionId: connectionId,\n isOwnConnection: false,\n clientRole: utils_1.decodeClientRole(connection.data)\n });\n };\n _this.connectionCreatedHandler = function (event) {\n trace.info('connectionCreatedHandler', event);\n var connection = event.connection;\n var connectionId = connection.connectionId;\n if (!_this.ownConnectionId || !connection) {\n return;\n }\n _this.emit(MultipartyServiceEventTypes_1.MultiPartyServiceEventTypes.connectionCreated, {\n clientRole: utils_1.decodeClientRole(connection.data),\n participantId: _this.getParticipantId(connectionId),\n connectionId: connectionId,\n isOwnConnection: _this.checkOwnConnection(connectionId)\n });\n };\n _this.connectionDestroyedHandler = function (event) {\n var connection = event.connection;\n var connectionId = connection.connectionId;\n trace.info('connectionDestroyedHandler', event);\n _this.emit(MultipartyServiceEventTypes_1.MultiPartyServiceEventTypes.connectionDestroyed, {\n clientRole: utils_1.decodeClientRole(connection.data),\n participantId: _this.getParticipantId(connectionId),\n connectionId: connectionId,\n isOwnConnection: _this.checkOwnConnection(connectionId)\n });\n if (connectionId !== _this.ownConnectionId || !_this.ownConnectionId) {\n return;\n }\n _this.session = undefined;\n };\n _this.streamPropertyChangedHandler = function (event) {\n trace.info('streamPropertyChangedHandler', event);\n var _a = event.stream, hasVideo = _a.hasVideo, hasAudio = _a.hasAudio, connection = _a.connection, videoDimensions = _a.videoDimensions;\n var connectionId = connection.connectionId;\n _this.emit(MultipartyServiceEventTypes_1.MultiPartyServiceEventTypes.streamPropertyChanged, {\n hasVideo: hasVideo,\n hasAudio: hasAudio,\n participantId: _this.getParticipantId(connectionId),\n connectionId: connectionId,\n isOwnConnection: _this.checkOwnConnection(connectionId),\n clientRole: utils_1.decodeClientRole(connection.data),\n videoDimensions: videoDimensions\n });\n };\n _this.sessionDisconnectedHandler = function (event) {\n trace.info('sessionDisconnectedHandler', event);\n };\n _this.checkOwnConnection = function (connectionId) {\n return _this.ownConnectionId !== undefined && _this.ownConnectionId === connectionId;\n };\n return _this;\n }\n Object.defineProperty(OpentokMultiPartyService.prototype, \"ownConnectionId\", {\n get: function () {\n var _a, _b;\n return ((_b = (_a = this.session) === null || _a === void 0 ? void 0 : _a.connection) === null || _b === void 0 ? void 0 : _b.connectionId) || '';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(OpentokMultiPartyService.prototype, \"subscribers\", {\n get: function () {\n return __spreadArrays(this.subscriberList);\n },\n enumerable: false,\n configurable: true\n });\n return OpentokMultiPartyService;\n}(MultiPartyService_1.MultiPartyService));\nexports.OpentokMultiPartyService = OpentokMultiPartyService;\n\n//# sourceMappingURL=OpentokMultiPartyService.js.map\n"]}
|