@techsee/techsee-media-service 11.0.0 → 12.1.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 +10 -0
- package/lib/MediaConstants.d.ts.map +1 -1
- package/lib/MediaConstants.js +17 -1
- package/lib/MediaConstants.js.map +1 -1
- package/lib/MediaContracts.d.ts +4 -0
- package/lib/MediaContracts.d.ts.map +1 -1
- package/lib/MediaSubscriber.d.ts.map +1 -1
- package/lib/MediaSubscriber.js +8 -1
- package/lib/MediaSubscriber.js.map +1 -1
- package/lib/MediaUtils/MediaDomUtils.d.ts +3 -2
- package/lib/MediaUtils/MediaDomUtils.d.ts.map +1 -1
- package/lib/MediaUtils/MediaDomUtils.js +20 -1
- package/lib/MediaUtils/MediaDomUtils.js.map +1 -1
- package/lib/MultiParty/DetectWebRtcService.d.ts +16 -14
- package/lib/MultiParty/DetectWebRtcService.d.ts.map +1 -1
- package/lib/MultiParty/DetectWebRtcService.js +221 -44
- package/lib/MultiParty/DetectWebRtcService.js.map +1 -1
- package/lib/MultiParty/MediaCapabilitiesService.d.ts +6 -12
- package/lib/MultiParty/MediaCapabilitiesService.d.ts.map +1 -1
- package/lib/MultiParty/MediaCapabilitiesService.js +58 -119
- package/lib/MultiParty/MediaCapabilitiesService.js.map +1 -1
- package/lib/MultiParty/MediaCapabilitiesUtils.d.ts.map +1 -1
- package/lib/MultiParty/MediaCapabilitiesUtils.js +2 -2
- package/lib/MultiParty/MediaCapabilitiesUtils.js.map +1 -1
- package/lib/MultiParty/MediaTracer.d.ts +3 -0
- package/lib/MultiParty/MediaTracer.d.ts.map +1 -0
- package/lib/MultiParty/MediaTracer.js +17 -0
- package/lib/MultiParty/MediaTracer.js.map +1 -0
- package/lib/MultiParty/MultiPartyService.d.ts +2 -2
- package/lib/MultiParty/MultiPartyService.d.ts.map +1 -1
- package/lib/MultiParty/MultiPartyServiceFactory.d.ts +1 -1
- 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 -1
- package/lib/MultiParty/MultipartyServiceEventTypes.d.ts.map +1 -1
- package/lib/MultiParty/MultipartyServiceEventTypes.js +13 -13
- package/lib/MultiParty/MultipartyServiceEventTypes.js.map +1 -1
- package/lib/MultiParty/index.d.ts +2 -0
- package/lib/MultiParty/index.d.ts.map +1 -1
- package/lib/MultiParty/index.js +4 -0
- package/lib/MultiParty/index.js.map +1 -1
- package/lib/MultiParty/opentok/OpentokMultiPartyService.d.ts +6 -18
- package/lib/MultiParty/opentok/OpentokMultiPartyService.d.ts.map +1 -1
- package/lib/MultiParty/opentok/OpentokMultiPartyService.js +72 -77
- package/lib/MultiParty/opentok/OpentokMultiPartyService.js.map +1 -1
- package/lib/MultiParty/opentok/OpentokPublisher.d.ts +14 -4
- package/lib/MultiParty/opentok/OpentokPublisher.d.ts.map +1 -1
- package/lib/MultiParty/opentok/OpentokPublisher.js +49 -84
- package/lib/MultiParty/opentok/OpentokPublisher.js.map +1 -1
- package/lib/MultiParty/opentok/OpentokPublisherEventMapper.d.ts +18 -0
- package/lib/MultiParty/opentok/OpentokPublisherEventMapper.d.ts.map +1 -0
- package/lib/MultiParty/opentok/OpentokPublisherEventMapper.js +66 -0
- package/lib/MultiParty/opentok/OpentokPublisherEventMapper.js.map +1 -0
- package/lib/MultiParty/opentok/OpentokSubscriber.js +2 -0
- package/lib/MultiParty/opentok/OpentokSubscriber.js.map +1 -1
- package/lib/MultiParty/opentok/trace.d.ts.map +1 -1
- package/lib/MultiParty/opentok/trace.js +2 -2
- package/lib/MultiParty/opentok/trace.js.map +1 -1
- package/lib/MultiParty/{Contracts.d.ts → types.d.ts} +8 -1
- package/lib/MultiParty/types.d.ts.map +1 -0
- package/lib/MultiParty/{Contracts.js → types.js} +1 -1
- package/lib/MultiParty/types.js.map +1 -0
- package/lib/MultiParty/utils.d.ts +3 -0
- package/lib/MultiParty/utils.d.ts.map +1 -0
- package/lib/MultiParty/utils.js +21 -0
- package/lib/MultiParty/utils.js.map +1 -0
- package/package.json +3 -3
- package/lib/MultiParty/Contracts.d.ts.map +0 -1
- package/lib/MultiParty/Contracts.js.map +0 -1
- package/lib/MultiParty/opentok/OpentokUtils.d.ts +0 -2
- package/lib/MultiParty/opentok/OpentokUtils.d.ts.map +0 -1
- package/lib/MultiParty/opentok/OpentokUtils.js +0 -17
- package/lib/MultiParty/opentok/OpentokUtils.js.map +0 -1
|
@@ -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","__1","require","MediaUtils_1","MediaCapabilitiesService_1","MediaCapabilitiesUtils_1","MultiPartyService_1","MultipartyServiceEventTypes_1","OpentokPublisher_1","OpentokSubscriber_1","OpentokUtils_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","MULTI_PARTY_EVENTS","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","clientRole","getClientRole","setDevicesList","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 __1 = require(\"..\");\nvar MediaUtils_1 = require(\"../../MediaUtils\");\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 OpentokUtils_1 = require(\"./OpentokUtils\");\nvar trace_1 = require(\"./trace\");\nvar trace = MediaUtils_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 = __1.DEFAULT_AVATAR_URI;\n _this.subscriberList = [];\n _this.setBackgroundImageURI = function (uri) {\n _this.backgroundImageURI = uri || __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.MULTI_PARTY_EVENTS.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.MULTI_PARTY_EVENTS.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 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) { return _this.emit(MultipartyServiceEventTypes_1.MULTI_PARTY_EVENTS.cameraSourceChanged, e); });\n this.publisher.on('streamCreated', function (e) { return _this.emit(MultipartyServiceEventTypes_1.MULTI_PARTY_EVENTS.streamCreated, e); });\n this.publisher.on('streamDestroyed', function (e) { return _this.emit(MultipartyServiceEventTypes_1.MULTI_PARTY_EVENTS.streamDestroyed, e); });\n this.publisher.on('mediaDeviceAccessDenied', function (e) { return _this.emit(MultipartyServiceEventTypes_1.MULTI_PARTY_EVENTS.mediaDeviceAccessDenied, e); });\n this.publisher.on('videoElementCreated', function () { return _this.emit(MultipartyServiceEventTypes_1.MULTI_PARTY_EVENTS.videoElementCreated); });\n this.session.publish(this.publisher.get(), trace_1.traceError);\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, participantId, clientRole, subscriber;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\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;\n participantId = this.getParticipantId(connectionId);\n clientRole = OpentokUtils_1.getClientRole(connection);\n return [4 /*yield*/, MediaCapabilitiesService_1.MediaCapabilitiesService.setDevicesList()];\n case 1:\n _a.sent();\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.MULTI_PARTY_EVENTS.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 }); };\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.MULTI_PARTY_EVENTS.streamDestroyed, {\n participantId: _this.getParticipantId(connectionId),\n connectionId: connectionId,\n isOwnConnection: false,\n clientRole: OpentokUtils_1.getClientRole(connection)\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.MULTI_PARTY_EVENTS.connectionCreated, {\n clientRole: OpentokUtils_1.getClientRole(connection),\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.MULTI_PARTY_EVENTS.connectionDestroyed, {\n clientRole: OpentokUtils_1.getClientRole(connection),\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.MULTI_PARTY_EVENTS.streamPropertyChanged, {\n hasVideo: hasVideo,\n hasAudio: hasAudio,\n participantId: _this.getParticipantId(connectionId),\n connectionId: connectionId,\n isOwnConnection: _this.checkOwnConnection(connectionId),\n clientRole: OpentokUtils_1.getClientRole(connection),\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"]}
|
|
@@ -1,25 +1,35 @@
|
|
|
1
1
|
import { TypedEventEmitter } from '@techsee/techsee-common/lib/helpers/TypedEventEmitter';
|
|
2
|
+
import { SessionSettings } from '../types';
|
|
2
3
|
import { MultipartyServiceEventTypesMap } from '../MultipartyServiceEventTypes';
|
|
3
4
|
import { MediaCapabilitiesService } from '../MediaCapabilitiesService';
|
|
4
|
-
import { SessionSettings } from '../Contracts';
|
|
5
5
|
export declare type PublisherEvents = Pick<MultipartyServiceEventTypesMap, 'videoElementCreated' | 'streamDestroyed' | 'streamCreated' | 'mediaDeviceAccessDenied' | 'cameraSourceChanged'>;
|
|
6
6
|
export interface OpentokPublisherOptions {
|
|
7
7
|
participantId: string;
|
|
8
8
|
backgroundImageURI: string;
|
|
9
9
|
}
|
|
10
|
-
|
|
10
|
+
declare type IMediaCapablities = Pick<MediaCapabilitiesService, 'frontCameraDeviceId' | 'backCameraDeviceId' | 'supportSwitchCamera' | 'updateDevicesList'>;
|
|
11
|
+
export interface IOpentokPublisher {
|
|
12
|
+
get: () => OT.Publisher;
|
|
13
|
+
destroy: () => void;
|
|
14
|
+
getImgData: () => string | null;
|
|
15
|
+
publishAudio: (enabled: boolean) => void;
|
|
16
|
+
publishVideo: (enabled: boolean) => void;
|
|
17
|
+
switchCamera: () => Promise<void>;
|
|
18
|
+
}
|
|
19
|
+
export declare class OpentokPublisher extends TypedEventEmitter<PublisherEvents> implements IOpentokPublisher {
|
|
11
20
|
private readonly options;
|
|
12
21
|
private readonly mediaCapabilitiesService;
|
|
13
22
|
private currentPublisher;
|
|
14
23
|
private selectedCamera;
|
|
15
24
|
private isMobile;
|
|
16
|
-
constructor(settings: SessionSettings, options: OpentokPublisherOptions, mediaCapabilitiesService:
|
|
25
|
+
constructor(settings: SessionSettings, options: OpentokPublisherOptions, mediaCapabilitiesService: IMediaCapablities);
|
|
17
26
|
get: () => OT.Publisher;
|
|
18
|
-
private get mirror();
|
|
19
27
|
destroy: () => void;
|
|
20
28
|
getImgData: () => string | null;
|
|
21
29
|
publishAudio: (enabled: boolean) => void;
|
|
22
30
|
publishVideo: (enabled: boolean) => void;
|
|
23
31
|
switchCamera: () => Promise<void>;
|
|
24
32
|
private initializeEventHandlers;
|
|
33
|
+
private getVideoSourceId;
|
|
25
34
|
}
|
|
35
|
+
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/MultiParty/opentok/OpentokPublisher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,iBAAiB,EAAC,MAAM,uDAAuD,CAAC;
|
|
1
|
+
{"version":3,"sources":["../src/MultiParty/opentok/OpentokPublisher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,iBAAiB,EAAC,MAAM,uDAAuD,CAAC;AACxF,OAAO,EAAC,eAAe,EAAC,MAAM,UAAU,CAAC;AACzC,OAAO,EAAC,8BAA8B,EAAC,MAAM,gCAAgC,CAAC;AAC9E,OAAO,EAAC,wBAAwB,EAAC,MAAM,6BAA6B,CAAC;AAkBrE,oBAAY,eAAe,GAAG,IAAI,CAC9B,8BAA8B,EAC9B,qBAAqB,GAAG,iBAAiB,GAAG,eAAe,GAAG,yBAAyB,GAAG,qBAAqB,CAClH,CAAC;AAIF,MAAM,WAAW,uBAAuB;IACpC,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;CAC9B;AAED,aAAK,iBAAiB,GAAG,IAAI,CACzB,wBAAwB,EACxB,qBAAqB,GAAG,oBAAoB,GAAG,qBAAqB,GAAG,mBAAmB,CAC7F,CAAC;AAEF,MAAM,WAAW,iBAAiB;IAC9B,GAAG,EAAE,MAAM,EAAE,CAAC,SAAS,CAAC;IACxB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,UAAU,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IAChC,YAAY,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACzC,YAAY,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACzC,YAAY,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACrC;AACD,qBAAa,gBAAiB,SAAQ,iBAAiB,CAAC,eAAe,CAAE,YAAW,iBAAiB;IAQ7F,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,wBAAwB;IAR7C,OAAO,CAAC,gBAAgB,CAAe;IAEvC,OAAO,CAAC,cAAc,CAAC;IACvB,OAAO,CAAC,QAAQ,CAA4B;gBAGxC,QAAQ,EAAE,eAAe,EACR,OAAO,EAAE,uBAAuB,EAChC,wBAAwB,EAAE,iBAAiB;IA2CzD,GAAG,QAAO,GAAG,SAAS,CAA0B;IAEhD,OAAO,QAAO,IAAI,CAAoC;IAEtD,UAAU,QAAO,MAAM,GAAG,IAAI,CAA+C;IAE7E,YAAY,YAAa,OAAO,KAAG,IAAI,CAAgD;IAEvF,YAAY,YAAa,OAAO,KAAG,IAAI,CAAgD;IAEvF,YAAY,QAAa,QAAQ,IAAI,CAAC,CA+B3C;IAEF,OAAO,CAAC,uBAAuB,CAoC7B;IAEF,OAAO,CAAC,gBAAgB,CAGoC;CAC/D","file":"OpentokPublisher.d.ts","sourcesContent":["import {TypedEventEmitter} from '@techsee/techsee-common/lib/helpers/TypedEventEmitter';\nimport {SessionSettings} from '../types';\nimport {MultipartyServiceEventTypesMap} from '../MultipartyServiceEventTypes';\nimport {MediaCapabilitiesService} from '../MediaCapabilitiesService';\nimport {checkIsMobile} from '../MediaCapabilitiesUtils';\nimport {shouldMirrorCamera} from '../utils';\nimport {traceError, traceInfo} from './trace';\nimport {\n createCameraSourceChangedEvent,\n createMediaAccessDeniedEvent,\n createStreamCreatedEvent,\n createStreamDestroyedEvent\n} from './OpentokPublisherEventMapper';\nimport {MultiPartyCameraTypes} from '../../MediaConstants';\n\n// The preferred camera position to use for the video source\nenum OpentokFacingMode {\n USER = 'user',\n ENVIRONMENT = 'environment'\n}\n\nexport type PublisherEvents = Pick<\n MultipartyServiceEventTypesMap,\n 'videoElementCreated' | 'streamDestroyed' | 'streamCreated' | 'mediaDeviceAccessDenied' | 'cameraSourceChanged'\n>;\n\nconst OPENTOK_MIRRORED_CSS_CLASS = 'OT_mirrored';\n\nexport interface OpentokPublisherOptions {\n participantId: string;\n backgroundImageURI: string;\n}\n\ntype IMediaCapablities = Pick<\n MediaCapabilitiesService,\n 'frontCameraDeviceId' | 'backCameraDeviceId' | 'supportSwitchCamera' | 'updateDevicesList'\n>;\n\nexport interface IOpentokPublisher {\n get: () => OT.Publisher;\n destroy: () => void;\n getImgData: () => string | null;\n publishAudio: (enabled: boolean) => void;\n publishVideo: (enabled: boolean) => void;\n switchCamera: () => Promise<void>;\n}\nexport class OpentokPublisher extends TypedEventEmitter<PublisherEvents> implements IOpentokPublisher {\n private currentPublisher: OT.Publisher;\n\n private selectedCamera;\n private isMobile: boolean = checkIsMobile();\n\n constructor(\n settings: SessionSettings,\n private readonly options: OpentokPublisherOptions,\n private readonly mediaCapabilitiesService: IMediaCapablities\n ) {\n super();\n\n const {selectedCamera, cameraEnabled, startWithAudioMuted} = settings;\n\n this.selectedCamera = selectedCamera;\n\n const {participantId, backgroundImageURI} = options;\n const videoSource = (!this.isMobile && this.getVideoSourceId(selectedCamera)) || undefined;\n const facingMode =\n (this.isMobile &&\n !videoSource &&\n (this.selectedCamera === MultiPartyCameraTypes.FRONT\n ? OpentokFacingMode.USER\n : OpentokFacingMode.ENVIRONMENT)) ||\n undefined;\n\n this.currentPublisher = OT.initPublisher(\n participantId,\n {\n insertMode: 'append',\n fitMode: 'cover',\n width: '100%',\n height: '100%',\n style: {\n buttonDisplayMode: 'off',\n archiveStatusDisplayMode: 'off',\n audioLevelDisplayMode: 'off',\n backgroundImageURI\n },\n publishAudio: !startWithAudioMuted,\n publishVideo: cameraEnabled,\n videoSource,\n facingMode,\n mirror: shouldMirrorCamera(this.isMobile, selectedCamera)\n },\n traceError\n );\n\n this.initializeEventHandlers();\n }\n\n public get = (): OT.Publisher => this.currentPublisher;\n\n public destroy = (): void => this.currentPublisher.destroy();\n\n public getImgData = (): string | null => this.currentPublisher.getImgData() || null;\n\n public publishAudio = (enabled: boolean): void => this.currentPublisher.publishAudio(enabled);\n\n public publishVideo = (enabled: boolean): void => this.currentPublisher.publishVideo(enabled);\n\n public switchCamera = async (): Promise<void> => {\n if (!this.mediaCapabilitiesService.supportSwitchCamera) {\n throw new Error('Not Support switch camera');\n }\n\n try {\n const newSelectedCamera =\n this.selectedCamera === MultiPartyCameraTypes.BACK\n ? MultiPartyCameraTypes.FRONT\n : MultiPartyCameraTypes.BACK;\n\n const newVideoSourceId = this.getVideoSourceId(newSelectedCamera);\n\n await this.currentPublisher.setVideoSource(newVideoSourceId);\n\n if (shouldMirrorCamera(!this.isMobile, newSelectedCamera)) {\n this.currentPublisher.element?.classList.add(OPENTOK_MIRRORED_CSS_CLASS);\n } else {\n this.currentPublisher.element?.classList.remove(OPENTOK_MIRRORED_CSS_CLASS);\n }\n\n this.selectedCamera = newSelectedCamera;\n\n this.emit(\n 'cameraSourceChanged',\n createCameraSourceChangedEvent(this.currentPublisher.stream, this.selectedCamera, this.isMobile)\n );\n } catch (err) {\n traceError(JSON.stringify(err));\n throw err;\n }\n };\n\n private initializeEventHandlers = () => {\n this.currentPublisher.on('videoElementCreated', (event: unknown) => {\n traceInfo('videoElementCreated', event);\n\n this.emit('videoElementCreated');\n });\n\n this.currentPublisher.on('streamCreated', async (event: {stream: OT.Stream}) => {\n const {hasAudio} = event.stream;\n const {participantId} = this.options;\n\n await this.mediaCapabilitiesService.updateDevicesList();\n\n this.emit(\n 'streamCreated',\n createStreamCreatedEvent(event.stream, this.options.participantId, this.selectedCamera, this.isMobile)\n );\n\n traceInfo('publisher stream created', {\n event,\n hasAudio,\n participantId\n });\n });\n\n this.currentPublisher.on('streamDestroyed', (event: {stream: OT.Stream}) => {\n traceInfo('Publisher stream destroyed', event);\n\n this.emit('streamDestroyed', createStreamDestroyedEvent(event.stream, this.options.participantId));\n });\n\n this.currentPublisher.on('accessDenied', () => {\n traceInfo('Publisher denied media permissions');\n\n this.emit('mediaDeviceAccessDenied', createMediaAccessDeniedEvent(true));\n });\n };\n\n private getVideoSourceId = (selectedCamera: MultiPartyCameraTypes): string =>\n (selectedCamera === MultiPartyCameraTypes.FRONT\n ? this.mediaCapabilitiesService.frontCameraDeviceId\n : this.mediaCapabilitiesService.backCameraDeviceId);\n}\n"]}
|
|
@@ -176,15 +176,15 @@ exports.OpentokPublisher = void 0;
|
|
|
176
176
|
|
|
177
177
|
var TypedEventEmitter_1 = require("@techsee/techsee-common/lib/helpers/TypedEventEmitter");
|
|
178
178
|
|
|
179
|
-
var
|
|
179
|
+
var MediaCapabilitiesUtils_1 = require("../MediaCapabilitiesUtils");
|
|
180
180
|
|
|
181
|
-
var
|
|
181
|
+
var utils_1 = require("../utils");
|
|
182
182
|
|
|
183
|
-
var
|
|
183
|
+
var trace_1 = require("./trace");
|
|
184
184
|
|
|
185
|
-
var
|
|
185
|
+
var OpentokPublisherEventMapper_1 = require("./OpentokPublisherEventMapper");
|
|
186
186
|
|
|
187
|
-
var
|
|
187
|
+
var MediaConstants_1 = require("../../MediaConstants"); // The preferred camera position to use for the video source
|
|
188
188
|
|
|
189
189
|
|
|
190
190
|
var OpentokFacingMode;
|
|
@@ -230,55 +230,45 @@ function (_super) {
|
|
|
230
230
|
|
|
231
231
|
_this.switchCamera = function () {
|
|
232
232
|
return __awaiter(_this, void 0, void 0, function () {
|
|
233
|
-
var
|
|
233
|
+
var newSelectedCamera, newVideoSourceId, err_1;
|
|
234
234
|
|
|
235
|
-
var _a, _b
|
|
235
|
+
var _a, _b;
|
|
236
236
|
|
|
237
|
-
return __generator(this, function (
|
|
238
|
-
switch (
|
|
237
|
+
return __generator(this, function (_c) {
|
|
238
|
+
switch (_c.label) {
|
|
239
239
|
case 0:
|
|
240
240
|
if (!this.mediaCapabilitiesService.supportSwitchCamera) {
|
|
241
241
|
throw new Error('Not Support switch camera');
|
|
242
242
|
}
|
|
243
243
|
|
|
244
|
-
|
|
244
|
+
_c.label = 1;
|
|
245
245
|
|
|
246
246
|
case 1:
|
|
247
|
-
|
|
247
|
+
_c.trys.push([1, 3,, 4]);
|
|
248
248
|
|
|
249
|
-
|
|
250
|
-
|
|
249
|
+
newSelectedCamera = this.selectedCamera === MediaConstants_1.MultiPartyCameraTypes.BACK ? MediaConstants_1.MultiPartyCameraTypes.FRONT : MediaConstants_1.MultiPartyCameraTypes.BACK;
|
|
250
|
+
newVideoSourceId = this.getVideoSourceId(newSelectedCamera);
|
|
251
251
|
return [4
|
|
252
252
|
/*yield*/
|
|
253
253
|
, this.currentPublisher.setVideoSource(newVideoSourceId)];
|
|
254
254
|
|
|
255
255
|
case 2:
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
mirror = !this.isMobile || newCameraSource !== MediaConstants_1.MultiPartyCameraTypes.BACK;
|
|
256
|
+
_c.sent();
|
|
259
257
|
|
|
260
|
-
if (
|
|
258
|
+
if (utils_1.shouldMirrorCamera(!this.isMobile, newSelectedCamera)) {
|
|
261
259
|
(_a = this.currentPublisher.element) === null || _a === void 0 ? void 0 : _a.classList.add(OPENTOK_MIRRORED_CSS_CLASS);
|
|
262
260
|
} else {
|
|
263
261
|
(_b = this.currentPublisher.element) === null || _b === void 0 ? void 0 : _b.classList.remove(OPENTOK_MIRRORED_CSS_CLASS);
|
|
264
262
|
}
|
|
265
263
|
|
|
266
|
-
this.selectedCamera =
|
|
267
|
-
|
|
268
|
-
width: 0,
|
|
269
|
-
height: 0
|
|
270
|
-
};
|
|
271
|
-
this.emit('cameraSourceChanged', {
|
|
272
|
-
cameraSource: newCameraSource,
|
|
273
|
-
mirror: mirror,
|
|
274
|
-
videoDimensions: videoDimensions
|
|
275
|
-
});
|
|
264
|
+
this.selectedCamera = newSelectedCamera;
|
|
265
|
+
this.emit('cameraSourceChanged', OpentokPublisherEventMapper_1.createCameraSourceChangedEvent(this.currentPublisher.stream, this.selectedCamera, this.isMobile));
|
|
276
266
|
return [3
|
|
277
267
|
/*break*/
|
|
278
268
|
, 4];
|
|
279
269
|
|
|
280
270
|
case 3:
|
|
281
|
-
err_1 =
|
|
271
|
+
err_1 = _c.sent();
|
|
282
272
|
trace_1.traceError(JSON.stringify(err_1));
|
|
283
273
|
throw err_1;
|
|
284
274
|
|
|
@@ -292,64 +282,28 @@ function (_super) {
|
|
|
292
282
|
};
|
|
293
283
|
|
|
294
284
|
_this.initializeEventHandlers = function () {
|
|
295
|
-
if (!_this.currentPublisher) {
|
|
296
|
-
throw new Error('Publisher not initialized');
|
|
297
|
-
}
|
|
298
|
-
|
|
299
285
|
_this.currentPublisher.on('videoElementCreated', function (event) {
|
|
300
286
|
trace_1.traceInfo('videoElementCreated', event);
|
|
301
287
|
|
|
302
288
|
_this.emit('videoElementCreated');
|
|
303
289
|
});
|
|
304
290
|
|
|
305
|
-
_this.currentPublisher.on('streamDestroyed', function (event) {
|
|
306
|
-
trace_1.traceInfo('Publisher stream destroyed', event);
|
|
307
|
-
var connection = event.stream.connection;
|
|
308
|
-
var connectionId = connection.connectionId;
|
|
309
|
-
|
|
310
|
-
_this.emit('streamDestroyed', {
|
|
311
|
-
participantId: _this.options.participantId,
|
|
312
|
-
connectionId: connectionId,
|
|
313
|
-
isOwnConnection: true,
|
|
314
|
-
clientRole: OpentokUtils_1.getClientRole(connection)
|
|
315
|
-
});
|
|
316
|
-
});
|
|
317
|
-
|
|
318
|
-
_this.currentPublisher.on('accessDenied', function () {
|
|
319
|
-
trace_1.traceInfo('Publisher denied media permissions');
|
|
320
|
-
|
|
321
|
-
_this.emit('mediaDeviceAccessDenied', {
|
|
322
|
-
isOwnConnection: true
|
|
323
|
-
});
|
|
324
|
-
});
|
|
325
|
-
|
|
326
291
|
_this.currentPublisher.on('streamCreated', function (event) {
|
|
327
292
|
return __awaiter(_this, void 0, void 0, function () {
|
|
328
|
-
var
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
switch (_b.label) {
|
|
293
|
+
var hasAudio, participantId;
|
|
294
|
+
return __generator(this, function (_a) {
|
|
295
|
+
switch (_a.label) {
|
|
332
296
|
case 0:
|
|
297
|
+
hasAudio = event.stream.hasAudio;
|
|
298
|
+
participantId = this.options.participantId;
|
|
333
299
|
return [4
|
|
334
300
|
/*yield*/
|
|
335
|
-
,
|
|
301
|
+
, this.mediaCapabilitiesService.updateDevicesList()];
|
|
336
302
|
|
|
337
303
|
case 1:
|
|
338
|
-
|
|
304
|
+
_a.sent();
|
|
339
305
|
|
|
340
|
-
|
|
341
|
-
connectionId = event.stream.connection.connectionId;
|
|
342
|
-
participantId = this.options.participantId;
|
|
343
|
-
this.emit('streamCreated', {
|
|
344
|
-
participantId: participantId,
|
|
345
|
-
clientRole: OpentokUtils_1.getClientRole(connection),
|
|
346
|
-
connectionId: connectionId,
|
|
347
|
-
hasVideo: hasVideo,
|
|
348
|
-
hasAudio: hasAudio,
|
|
349
|
-
isOwnConnection: true,
|
|
350
|
-
mirror: this.mirror,
|
|
351
|
-
videoDimensions: videoDimensions
|
|
352
|
-
});
|
|
306
|
+
this.emit('streamCreated', OpentokPublisherEventMapper_1.createStreamCreatedEvent(event.stream, this.options.participantId, this.selectedCamera, this.isMobile));
|
|
353
307
|
trace_1.traceInfo('publisher stream created', {
|
|
354
308
|
event: event,
|
|
355
309
|
hasAudio: hasAudio,
|
|
@@ -362,6 +316,22 @@ function (_super) {
|
|
|
362
316
|
});
|
|
363
317
|
});
|
|
364
318
|
});
|
|
319
|
+
|
|
320
|
+
_this.currentPublisher.on('streamDestroyed', function (event) {
|
|
321
|
+
trace_1.traceInfo('Publisher stream destroyed', event);
|
|
322
|
+
|
|
323
|
+
_this.emit('streamDestroyed', OpentokPublisherEventMapper_1.createStreamDestroyedEvent(event.stream, _this.options.participantId));
|
|
324
|
+
});
|
|
325
|
+
|
|
326
|
+
_this.currentPublisher.on('accessDenied', function () {
|
|
327
|
+
trace_1.traceInfo('Publisher denied media permissions');
|
|
328
|
+
|
|
329
|
+
_this.emit('mediaDeviceAccessDenied', OpentokPublisherEventMapper_1.createMediaAccessDeniedEvent(true));
|
|
330
|
+
});
|
|
331
|
+
};
|
|
332
|
+
|
|
333
|
+
_this.getVideoSourceId = function (selectedCamera) {
|
|
334
|
+
return selectedCamera === MediaConstants_1.MultiPartyCameraTypes.FRONT ? _this.mediaCapabilitiesService.frontCameraDeviceId : _this.mediaCapabilitiesService.backCameraDeviceId;
|
|
365
335
|
};
|
|
366
336
|
|
|
367
337
|
var selectedCamera = settings.selectedCamera,
|
|
@@ -370,8 +340,8 @@ function (_super) {
|
|
|
370
340
|
_this.selectedCamera = selectedCamera;
|
|
371
341
|
var participantId = options.participantId,
|
|
372
342
|
backgroundImageURI = options.backgroundImageURI;
|
|
373
|
-
var
|
|
374
|
-
var
|
|
343
|
+
var videoSource = !_this.isMobile && _this.getVideoSourceId(selectedCamera) || undefined;
|
|
344
|
+
var facingMode = _this.isMobile && !videoSource && (_this.selectedCamera === MediaConstants_1.MultiPartyCameraTypes.FRONT ? OpentokFacingMode.USER : OpentokFacingMode.ENVIRONMENT) || undefined;
|
|
375
345
|
_this.currentPublisher = OT.initPublisher(participantId, {
|
|
376
346
|
insertMode: 'append',
|
|
377
347
|
fitMode: 'cover',
|
|
@@ -385,9 +355,9 @@ function (_super) {
|
|
|
385
355
|
},
|
|
386
356
|
publishAudio: !startWithAudioMuted,
|
|
387
357
|
publishVideo: cameraEnabled,
|
|
388
|
-
videoSource:
|
|
389
|
-
facingMode:
|
|
390
|
-
mirror: _this.
|
|
358
|
+
videoSource: videoSource,
|
|
359
|
+
facingMode: facingMode,
|
|
360
|
+
mirror: utils_1.shouldMirrorCamera(_this.isMobile, selectedCamera)
|
|
391
361
|
}, trace_1.traceError);
|
|
392
362
|
|
|
393
363
|
_this.initializeEventHandlers();
|
|
@@ -395,15 +365,10 @@ function (_super) {
|
|
|
395
365
|
return _this;
|
|
396
366
|
}
|
|
397
367
|
|
|
398
|
-
Object.defineProperty(OpentokPublisher.prototype, "mirror", {
|
|
399
|
-
get: function get() {
|
|
400
|
-
return !this.isMobile || this.selectedCamera !== MediaConstants_1.MultiPartyCameraTypes.BACK;
|
|
401
|
-
},
|
|
402
|
-
enumerable: false,
|
|
403
|
-
configurable: true
|
|
404
|
-
});
|
|
405
368
|
return OpentokPublisher;
|
|
406
369
|
}(TypedEventEmitter_1.TypedEventEmitter);
|
|
407
370
|
|
|
408
371
|
exports.OpentokPublisher = OpentokPublisher;
|
|
409
372
|
//# sourceMappingURL=OpentokPublisher.js.map
|
|
373
|
+
|
|
374
|
+
//# sourceMappingURL=OpentokPublisher.js.map
|