@techsee/techsee-media-service 999.0.2-switch → 999.0.3-alpha
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/LocalStreamManager.d.ts +12 -0
- package/lib/LocalStreamManager.d.ts.map +1 -1
- package/lib/LocalStreamManager.js +440 -283
- package/lib/LocalStreamManager.js.map +1 -1
- package/lib/MediaConstants.d.ts +14 -4
- package/lib/MediaConstants.d.ts.map +1 -1
- package/lib/MediaConstants.js +83 -38
- package/lib/MediaConstants.js.map +1 -1
- package/lib/MediaContracts.d.ts +17 -14
- package/lib/MediaContracts.d.ts.map +1 -1
- package/lib/MediaContracts.js +3 -3
- package/lib/MediaContracts.js.map +1 -1
- package/lib/MediaPublisher.d.ts +3 -3
- package/lib/MediaPublisher.d.ts.map +1 -1
- package/lib/MediaPublisher.js +46 -35
- package/lib/MediaPublisher.js.map +1 -1
- package/lib/MediaServiceBase.d.ts +21 -7
- package/lib/MediaServiceBase.d.ts.map +1 -1
- package/lib/MediaServiceBase.js +924 -586
- package/lib/MediaServiceBase.js.map +1 -1
- package/lib/MediaSession/MediaServer.d.ts +45 -0
- package/lib/MediaSession/MediaServer.d.ts.map +1 -0
- package/lib/MediaSession/MediaServer.js +538 -0
- package/lib/MediaSession/MediaServer.js.map +1 -0
- package/lib/MediaSession/MediaSessionBase.d.ts +10 -1
- package/lib/MediaSession/MediaSessionBase.d.ts.map +1 -1
- package/lib/MediaSession/MediaSessionBase.js +128 -66
- package/lib/MediaSession/MediaSessionBase.js.map +1 -1
- package/lib/MediaSession/SessionOpentok.d.ts +11 -9
- package/lib/MediaSession/SessionOpentok.d.ts.map +1 -1
- package/lib/MediaSession/SessionOpentok.js +500 -352
- package/lib/MediaSession/SessionOpentok.js.map +1 -1
- package/lib/MediaSession/SessionTurn.d.ts +4 -1
- package/lib/MediaSession/SessionTurn.d.ts.map +1 -1
- package/lib/MediaSession/SessionTurn.js +611 -422
- package/lib/MediaSession/SessionTurn.js.map +1 -1
- package/lib/MediaSession/TurnConstants.js +31 -30
- package/lib/MediaSession/TurnConstants.js.map +1 -1
- package/lib/MediaSubscriber.d.ts +11 -11
- package/lib/MediaSubscriber.d.ts.map +1 -1
- package/lib/MediaSubscriber.js +236 -192
- package/lib/MediaSubscriber.js.map +1 -1
- package/lib/MediaUtils/Compatibility.d.ts +2 -1
- package/lib/MediaUtils/Compatibility.d.ts.map +1 -1
- package/lib/MediaUtils/Compatibility.js +130 -85
- package/lib/MediaUtils/Compatibility.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 +235 -174
- package/lib/MediaUtils/MediaDomUtils.js.map +1 -1
- package/lib/MediaUtils/MediaTracer.js +9 -4
- package/lib/MediaUtils/MediaTracer.js.map +1 -1
- package/lib/MediaUtils/index.d.ts +1 -0
- package/lib/MediaUtils/index.d.ts.map +1 -0
- package/lib/MediaUtils/index.js +16 -0
- package/lib/MediaUtils/index.js.map +1 -0
- package/lib/MultiParty/Contracts.d.ts +16 -0
- package/lib/MultiParty/Contracts.d.ts.map +1 -0
- package/lib/MultiParty/Contracts.js +6 -0
- package/lib/MultiParty/Contracts.js.map +1 -0
- package/lib/MultiParty/DetectWebRtcService.d.ts +16 -0
- package/lib/MultiParty/DetectWebRtcService.d.ts.map +1 -0
- package/lib/MultiParty/DetectWebRtcService.js +79 -0
- package/lib/MultiParty/DetectWebRtcService.js.map +1 -0
- package/lib/MultiParty/MediaCapabilitiesService.d.ts +23 -0
- package/lib/MultiParty/MediaCapabilitiesService.d.ts.map +1 -0
- package/lib/MultiParty/MediaCapabilitiesService.js +369 -0
- package/lib/MultiParty/MediaCapabilitiesService.js.map +1 -0
- package/lib/MultiParty/MediaCapabilitiesUtils.d.ts +5 -0
- package/lib/MultiParty/MediaCapabilitiesUtils.d.ts.map +1 -0
- package/lib/MultiParty/MediaCapabilitiesUtils.js +305 -0
- package/lib/MultiParty/MediaCapabilitiesUtils.js.map +1 -0
- package/lib/MultiParty/MultiPartyService.d.ts +41 -0
- package/lib/MultiParty/MultiPartyService.d.ts.map +1 -0
- package/lib/MultiParty/MultiPartyService.js +72 -0
- package/lib/MultiParty/MultiPartyService.js.map +1 -0
- package/lib/MultiParty/MultiPartyServiceFactory.d.ts +3 -0
- package/lib/MultiParty/MultiPartyServiceFactory.d.ts.map +1 -0
- package/lib/MultiParty/MultiPartyServiceFactory.js +21 -0
- package/lib/MultiParty/MultiPartyServiceFactory.js.map +1 -0
- package/lib/MultiParty/OpentokMultiPartyService.d.ts +29 -0
- package/lib/MultiParty/OpentokMultiPartyService.d.ts.map +1 -0
- package/lib/MultiParty/OpentokMultiPartyService.js +888 -0
- package/lib/MultiParty/OpentokMultiPartyService.js.map +1 -0
- 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 +4 -0
- package/lib/MultiParty/index.d.ts.map +1 -0
- package/lib/MultiParty/index.js +61 -0
- package/lib/MultiParty/index.js.map +1 -0
- package/lib/MultiParty/opentok.d.ts +503 -0
- package/lib/TechseeMediaStream.d.ts +6 -6
- package/lib/TechseeMediaStream.d.ts.map +1 -1
- package/lib/TechseeMediaStream.js +59 -53
- package/lib/TechseeMediaStream.js.map +1 -1
- package/lib/oldCode/constants.js +20 -15
- package/lib/oldCode/constants.js.map +1 -1
- package/lib/oldCode/event-emitter.js +45 -22
- package/lib/oldCode/event-emitter.js.map +1 -1
- package/lib/oldCode/index.js +48 -52
- package/lib/oldCode/index.js.map +1 -1
- package/lib/oldCode/opentok/session.js +261 -236
- package/lib/oldCode/opentok/session.js.map +1 -1
- package/lib/oldCode/opentok/stream.js +283 -269
- package/lib/oldCode/opentok/stream.js.map +1 -1
- package/lib/oldCode/publisher.js +96 -71
- package/lib/oldCode/publisher.js.map +1 -1
- package/lib/oldCode/service.js +294 -272
- package/lib/oldCode/service.js.map +1 -1
- package/lib/oldCode/session.js +82 -60
- package/lib/oldCode/session.js.map +1 -1
- package/lib/oldCode/stream.js +153 -125
- package/lib/oldCode/stream.js.map +1 -1
- package/lib/oldCode/subscriber.js +60 -35
- package/lib/oldCode/subscriber.js.map +1 -1
- package/lib/oldCode/tracer.d.ts +3 -2
- package/lib/oldCode/tracer.d.ts.map +1 -1
- package/lib/oldCode/tracer.js +181 -130
- package/lib/oldCode/tracer.js.map +1 -1
- package/lib/oldCode/utils/ImageFixer.js +67 -44
- package/lib/oldCode/utils/ImageFixer.js.map +1 -1
- package/lib/oldCode/webrtc/constants.js +102 -110
- package/lib/oldCode/webrtc/constants.js.map +1 -1
- package/lib/oldCode/webrtc/helper.js +176 -124
- package/lib/oldCode/webrtc/helper.js.map +1 -1
- package/lib/oldCode/webrtc/session-kms.js +408 -393
- package/lib/oldCode/webrtc/session-kms.js.map +1 -1
- package/lib/oldCode/webrtc/session-loopback.js +245 -227
- package/lib/oldCode/webrtc/session-loopback.js.map +1 -1
- package/lib/oldCode/webrtc/session-turn.js +705 -658
- package/lib/oldCode/webrtc/session-turn.js.map +1 -1
- package/lib/oldCode/webrtc/session-turn.v2.js +480 -471
- package/lib/oldCode/webrtc/session-turn.v2.js.map +1 -1
- package/lib/oldCode/webrtc/session.js +12 -6
- package/lib/oldCode/webrtc/session.js.map +1 -1
- package/lib/oldCode/webrtc/stream.js +526 -504
- package/lib/oldCode/webrtc/stream.js.map +1 -1
- package/lib/oldCode/webrtc/temasys/adapter-loader.js +5 -6
- package/lib/oldCode/webrtc/temasys/adapter-loader.js.map +1 -1
- package/lib/oldCode/webrtc/temasys/adapter.js +5264 -5192
- package/lib/oldCode/webrtc/temasys/adapter.js.map +1 -1
- package/lib/oldCode/webrtc/webrtc-ie-shim.js +3357 -2927
- package/lib/oldCode/webrtc/webrtc-ie-shim.js.map +1 -1
- package/lib/qos/raw-qos.js +348 -273
- package/lib/qos/raw-qos.js.map +1 -1
- package/lib/webrtc-ie-shim.js +3386 -2985
- package/lib/webrtc-ie-shim.js.map +1 -1
- package/package.json +54 -42
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/MultiParty/DetectWebRtcService.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,gBAAgB,EAAC,MAAM,uDAAuD,CAAC;AAKvF,eAAO,MAAM,0BAA0B,KAAK,CAAC;AAE7C,MAAM,WAAW,mBAAoB,SAAQ,gBAAgB;IAEzD,IAAI,CAAC,MAAM,EAAE,QAAQ,GAAG,IAAI,CAAC;CAChC;AAED,MAAM,WAAW,eAAe;IAC5B,aAAa,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAAC;CAC9C;AAED,qBAAa,mBAAoB,YAAW,eAAe;IACvD,OAAO,CAAC,aAAa,CAA6B;IAClD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAgC;IAC/D,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAS;gBAElC,mBAAmB,EAAE,MAAM;IAMvC,aAAa,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAsC1C,OAAO,CAAC,MAAM,CAAC,gBAAgB;CASlC","file":"DetectWebRtcService.d.ts","sourcesContent":["import {Nullable} from '@techsee/techsee-common';\nimport {ClientWebRtcInfo} from '@techsee/techsee-common/lib/data-contracts/ClientInfo';\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport detectRTC from '@techsee/techsee-common/lib/detectrtc.js';\n\nexport const DETECT_RTC_ADVISED_TIMEOUT = 20;\n\nexport interface WebRtcNativeService extends ClientWebRtcInfo {\n // eslint-disable-next-line @typescript-eslint/ban-types\n load(doneCb: Function): void;\n}\n\nexport interface IWebRtcDetector {\n getWebRtcInfo(): Promise<ClientWebRtcInfo>;\n}\n\nexport class DetectWebRtcService implements IWebRtcDetector {\n private _cachedResult: Nullable<ClientWebRtcInfo>;\n private readonly _nativeService: Nullable<WebRtcNativeService>;\n private readonly _detectionTimeoutSec: number;\n\n constructor(detectionTimeoutSec: number) {\n this._cachedResult = null;\n this._nativeService = detectRTC;\n this._detectionTimeoutSec = detectionTimeoutSec * 1000;\n }\n\n getWebRtcInfo(): Promise<ClientWebRtcInfo> {\n if (this._cachedResult) {\n return Promise.resolve(this._cachedResult);\n }\n\n if (!this._nativeService) {\n this._cachedResult = DetectWebRtcService.getDefaultResult();\n\n return Promise.resolve(this._cachedResult);\n }\n\n return new Promise((resolve) => {\n let timeoutPtr: any = setTimeout(() => {\n timeoutPtr = null;\n this._cachedResult = DetectWebRtcService.getDefaultResult();\n resolve(this._cachedResult);\n }, this._detectionTimeoutSec);\n\n this._nativeService!.load(() => {\n if (timeoutPtr === null) {\n return;\n }\n\n clearTimeout(timeoutPtr);\n\n this._cachedResult = {\n isWebRTCSupported: this._nativeService!.isWebRTCSupported,\n isWebsiteHasWebcamPermissions: this._nativeService!.isWebsiteHasWebcamPermissions,\n isWebsiteHasMicrophonePermissions: this._nativeService!.isWebsiteHasMicrophonePermissions,\n isGetUserMediaSupported: this._nativeService!.isGetUserMediaSupported,\n isApplyConstraintsSupported: this._nativeService!.isApplyConstraintsSupported\n };\n\n resolve(this._cachedResult);\n });\n });\n }\n\n private static getDefaultResult() {\n return {\n isWebRTCSupported: false,\n isWebsiteHasWebcamPermissions: false,\n isWebsiteHasMicrophonePermissions: false,\n isGetUserMediaSupported: false,\n isApplyConstraintsSupported: false\n };\n }\n}\n"]}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var __importDefault = void 0 && (void 0).__importDefault || function (mod) {
|
|
4
|
+
return mod && mod.__esModule ? mod : {
|
|
5
|
+
"default": mod
|
|
6
|
+
};
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
Object.defineProperty(exports, "__esModule", {
|
|
10
|
+
value: true
|
|
11
|
+
});
|
|
12
|
+
exports.DetectWebRtcService = exports.DETECT_RTC_ADVISED_TIMEOUT = void 0; // eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
13
|
+
// @ts-ignore
|
|
14
|
+
|
|
15
|
+
var detectrtc_js_1 = __importDefault(require("@techsee/techsee-common/lib/detectrtc.js"));
|
|
16
|
+
|
|
17
|
+
exports.DETECT_RTC_ADVISED_TIMEOUT = 20;
|
|
18
|
+
|
|
19
|
+
var DetectWebRtcService =
|
|
20
|
+
/** @class */
|
|
21
|
+
function () {
|
|
22
|
+
function DetectWebRtcService(detectionTimeoutSec) {
|
|
23
|
+
this._cachedResult = null;
|
|
24
|
+
this._nativeService = detectrtc_js_1["default"];
|
|
25
|
+
this._detectionTimeoutSec = detectionTimeoutSec * 1000;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
DetectWebRtcService.prototype.getWebRtcInfo = function () {
|
|
29
|
+
var _this = this;
|
|
30
|
+
|
|
31
|
+
if (this._cachedResult) {
|
|
32
|
+
return Promise.resolve(this._cachedResult);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
if (!this._nativeService) {
|
|
36
|
+
this._cachedResult = DetectWebRtcService.getDefaultResult();
|
|
37
|
+
return Promise.resolve(this._cachedResult);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
return new Promise(function (resolve) {
|
|
41
|
+
var timeoutPtr = setTimeout(function () {
|
|
42
|
+
timeoutPtr = null;
|
|
43
|
+
_this._cachedResult = DetectWebRtcService.getDefaultResult();
|
|
44
|
+
resolve(_this._cachedResult);
|
|
45
|
+
}, _this._detectionTimeoutSec);
|
|
46
|
+
|
|
47
|
+
_this._nativeService.load(function () {
|
|
48
|
+
if (timeoutPtr === null) {
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
clearTimeout(timeoutPtr);
|
|
53
|
+
_this._cachedResult = {
|
|
54
|
+
isWebRTCSupported: _this._nativeService.isWebRTCSupported,
|
|
55
|
+
isWebsiteHasWebcamPermissions: _this._nativeService.isWebsiteHasWebcamPermissions,
|
|
56
|
+
isWebsiteHasMicrophonePermissions: _this._nativeService.isWebsiteHasMicrophonePermissions,
|
|
57
|
+
isGetUserMediaSupported: _this._nativeService.isGetUserMediaSupported,
|
|
58
|
+
isApplyConstraintsSupported: _this._nativeService.isApplyConstraintsSupported
|
|
59
|
+
};
|
|
60
|
+
resolve(_this._cachedResult);
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
DetectWebRtcService.getDefaultResult = function () {
|
|
66
|
+
return {
|
|
67
|
+
isWebRTCSupported: false,
|
|
68
|
+
isWebsiteHasWebcamPermissions: false,
|
|
69
|
+
isWebsiteHasMicrophonePermissions: false,
|
|
70
|
+
isGetUserMediaSupported: false,
|
|
71
|
+
isApplyConstraintsSupported: false
|
|
72
|
+
};
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
return DetectWebRtcService;
|
|
76
|
+
}();
|
|
77
|
+
|
|
78
|
+
exports.DetectWebRtcService = DetectWebRtcService;
|
|
79
|
+
//# sourceMappingURL=DetectWebRtcService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["MultiParty/DetectWebRtcService.js"],"names":["__importDefault","mod","__esModule","Object","defineProperty","exports","value","DetectWebRtcService","DETECT_RTC_ADVISED_TIMEOUT","detectrtc_js_1","require","detectionTimeoutSec","_cachedResult","_nativeService","_detectionTimeoutSec","prototype","getWebRtcInfo","_this","Promise","resolve","getDefaultResult","timeoutPtr","setTimeout","load","clearTimeout","isWebRTCSupported","isWebsiteHasWebcamPermissions","isWebsiteHasMicrophonePermissions","isGetUserMediaSupported","isApplyConstraintsSupported"],"mappings":"AAAA;;AACA,IAAIA,eAAe,GAAI,UAAQ,SAAKA,eAAd,IAAkC,UAAUC,GAAV,EAAe;AACnE,SAAQA,GAAG,IAAIA,GAAG,CAACC,UAAZ,GAA0BD,GAA1B,GAAgC;AAAE,eAAWA;AAAb,GAAvC;AACH,CAFD;;AAGAE,MAAM,CAACC,cAAP,CAAsBC,OAAtB,EAA+B,YAA/B,EAA6C;AAAEC,EAAAA,KAAK,EAAE;AAAT,CAA7C;AACAD,OAAO,CAACE,mBAAR,GAA8BF,OAAO,CAACG,0BAAR,GAAqC,KAAK,CAAxE,C,CACA;AACA;;AACA,IAAIC,cAAc,GAAGT,eAAe,CAACU,OAAO,CAAC,0CAAD,CAAR,CAApC;;AACAL,OAAO,CAACG,0BAAR,GAAqC,EAArC;;AACA,IAAID,mBAAmB;AAAG;AAAe,YAAY;AACjD,WAASA,mBAAT,CAA6BI,mBAA7B,EAAkD;AAC9C,SAAKC,aAAL,GAAqB,IAArB;AACA,SAAKC,cAAL,GAAsBJ,cAAc,WAApC;AACA,SAAKK,oBAAL,GAA4BH,mBAAmB,GAAG,IAAlD;AACH;;AACDJ,EAAAA,mBAAmB,CAACQ,SAApB,CAA8BC,aAA9B,GAA8C,YAAY;AACtD,QAAIC,KAAK,GAAG,IAAZ;;AACA,QAAI,KAAKL,aAAT,EAAwB;AACpB,aAAOM,OAAO,CAACC,OAAR,CAAgB,KAAKP,aAArB,CAAP;AACH;;AACD,QAAI,CAAC,KAAKC,cAAV,EAA0B;AACtB,WAAKD,aAAL,GAAqBL,mBAAmB,CAACa,gBAApB,EAArB;AACA,aAAOF,OAAO,CAACC,OAAR,CAAgB,KAAKP,aAArB,CAAP;AACH;;AACD,WAAO,IAAIM,OAAJ,CAAY,UAAUC,OAAV,EAAmB;AAClC,UAAIE,UAAU,GAAGC,UAAU,CAAC,YAAY;AACpCD,QAAAA,UAAU,GAAG,IAAb;AACAJ,QAAAA,KAAK,CAACL,aAAN,GAAsBL,mBAAmB,CAACa,gBAApB,EAAtB;AACAD,QAAAA,OAAO,CAACF,KAAK,CAACL,aAAP,CAAP;AACH,OAJ0B,EAIxBK,KAAK,CAACH,oBAJkB,CAA3B;;AAKAG,MAAAA,KAAK,CAACJ,cAAN,CAAqBU,IAArB,CAA0B,YAAY;AAClC,YAAIF,UAAU,KAAK,IAAnB,EAAyB;AACrB;AACH;;AACDG,QAAAA,YAAY,CAACH,UAAD,CAAZ;AACAJ,QAAAA,KAAK,CAACL,aAAN,GAAsB;AAClBa,UAAAA,iBAAiB,EAAER,KAAK,CAACJ,cAAN,CAAqBY,iBADtB;AAElBC,UAAAA,6BAA6B,EAAET,KAAK,CAACJ,cAAN,CAAqBa,6BAFlC;AAGlBC,UAAAA,iCAAiC,EAAEV,KAAK,CAACJ,cAAN,CAAqBc,iCAHtC;AAIlBC,UAAAA,uBAAuB,EAAEX,KAAK,CAACJ,cAAN,CAAqBe,uBAJ5B;AAKlBC,UAAAA,2BAA2B,EAAEZ,KAAK,CAACJ,cAAN,CAAqBgB;AALhC,SAAtB;AAOAV,QAAAA,OAAO,CAACF,KAAK,CAACL,aAAP,CAAP;AACH,OAbD;AAcH,KApBM,CAAP;AAqBH,GA9BD;;AA+BAL,EAAAA,mBAAmB,CAACa,gBAApB,GAAuC,YAAY;AAC/C,WAAO;AACHK,MAAAA,iBAAiB,EAAE,KADhB;AAEHC,MAAAA,6BAA6B,EAAE,KAF5B;AAGHC,MAAAA,iCAAiC,EAAE,KAHhC;AAIHC,MAAAA,uBAAuB,EAAE,KAJtB;AAKHC,MAAAA,2BAA2B,EAAE;AAL1B,KAAP;AAOH,GARD;;AASA,SAAOtB,mBAAP;AACH,CA/CwC,EAAzC;;AAgDAF,OAAO,CAACE,mBAAR,GAA8BA,mBAA9B","file":"DetectWebRtcService.js","sourcesContent":["\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DetectWebRtcService = exports.DETECT_RTC_ADVISED_TIMEOUT = void 0;\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nvar detectrtc_js_1 = __importDefault(require(\"@techsee/techsee-common/lib/detectrtc.js\"));\nexports.DETECT_RTC_ADVISED_TIMEOUT = 20;\nvar DetectWebRtcService = /** @class */ (function () {\n function DetectWebRtcService(detectionTimeoutSec) {\n this._cachedResult = null;\n this._nativeService = detectrtc_js_1.default;\n this._detectionTimeoutSec = detectionTimeoutSec * 1000;\n }\n DetectWebRtcService.prototype.getWebRtcInfo = function () {\n var _this = this;\n if (this._cachedResult) {\n return Promise.resolve(this._cachedResult);\n }\n if (!this._nativeService) {\n this._cachedResult = DetectWebRtcService.getDefaultResult();\n return Promise.resolve(this._cachedResult);\n }\n return new Promise(function (resolve) {\n var timeoutPtr = setTimeout(function () {\n timeoutPtr = null;\n _this._cachedResult = DetectWebRtcService.getDefaultResult();\n resolve(_this._cachedResult);\n }, _this._detectionTimeoutSec);\n _this._nativeService.load(function () {\n if (timeoutPtr === null) {\n return;\n }\n clearTimeout(timeoutPtr);\n _this._cachedResult = {\n isWebRTCSupported: _this._nativeService.isWebRTCSupported,\n isWebsiteHasWebcamPermissions: _this._nativeService.isWebsiteHasWebcamPermissions,\n isWebsiteHasMicrophonePermissions: _this._nativeService.isWebsiteHasMicrophonePermissions,\n isGetUserMediaSupported: _this._nativeService.isGetUserMediaSupported,\n isApplyConstraintsSupported: _this._nativeService.isApplyConstraintsSupported\n };\n resolve(_this._cachedResult);\n });\n });\n };\n DetectWebRtcService.getDefaultResult = function () {\n return {\n isWebRTCSupported: false,\n isWebsiteHasWebcamPermissions: false,\n isWebsiteHasMicrophonePermissions: false,\n isGetUserMediaSupported: false,\n isApplyConstraintsSupported: false\n };\n };\n return DetectWebRtcService;\n}());\nexports.DetectWebRtcService = DetectWebRtcService;\n\n//# sourceMappingURL=DetectWebRtcService.js.map\n"]}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export declare class MediaCapabilitiesService {
|
|
2
|
+
private static detectWebRtcService;
|
|
3
|
+
private static webRtcSupportInfo;
|
|
4
|
+
private static instance;
|
|
5
|
+
private static devicesList;
|
|
6
|
+
private static groupedDevices;
|
|
7
|
+
private static _supportSwitchCamera;
|
|
8
|
+
private static _backCameraDeviceId;
|
|
9
|
+
private static _frontCameraDeviceId;
|
|
10
|
+
private static _initPromise;
|
|
11
|
+
private environmentService;
|
|
12
|
+
static getInstance(): Promise<MediaCapabilitiesService>;
|
|
13
|
+
private static init;
|
|
14
|
+
hasCamera(): boolean;
|
|
15
|
+
hasMicrophone(): boolean;
|
|
16
|
+
hasWebRTC(): boolean;
|
|
17
|
+
hasGetUserMediaSupported(): boolean;
|
|
18
|
+
private static setGroupedDevices;
|
|
19
|
+
static setDevicesList(): Promise<void>;
|
|
20
|
+
get supportSwitchCamera(): boolean;
|
|
21
|
+
get backCameraDeviceId(): string;
|
|
22
|
+
get frontCameraDeviceId(): string;
|
|
23
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/MultiParty/MediaCapabilitiesService.ts"],"names":[],"mappings":"AA6BA,qBAAa,wBAAwB;IACjC,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAsB;IACxD,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAA+B;IAC/D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA2B;IAClD,OAAO,CAAC,MAAM,CAAC,WAAW,CAAyD;IACnF,OAAO,CAAC,MAAM,CAAC,cAAc,CAA8C;IAC3E,OAAO,CAAC,MAAM,CAAC,oBAAoB,CAAU;IAC7C,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAS;IAC3C,OAAO,CAAC,MAAM,CAAC,oBAAoB,CAAS;IAC5C,OAAO,CAAC,MAAM,CAAC,YAAY,CAAoC;IAE/D,OAAO,CAAC,kBAAkB,CAA6B;WAEnC,WAAW,IAAI,OAAO,CAAC,wBAAwB,CAAC;mBAoB/C,IAAI;IAmBlB,SAAS,IAAI,OAAO;IAIpB,aAAa,IAAI,OAAO;IAMxB,SAAS,IAAI,OAAO;IAIpB,wBAAwB,IAAI,OAAO;IAI1C,OAAO,CAAC,MAAM,CAAC,iBAAiB;WAaZ,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAWnD,IAAW,mBAAmB,YAE7B;IAED,IAAW,kBAAkB,WAE5B;IAED,IAAW,mBAAmB,WAE7B;CACJ","file":"MediaCapabilitiesService.d.ts","sourcesContent":["// eslint-disable-next-line @typescript-eslint/no-var-requires\nimport {getMediaTracer} from '../MediaUtils/MediaTracer';\nimport {DETECT_RTC_ADVISED_TIMEOUT, DetectWebRtcService} from './DetectWebRtcService';\nimport {ClientWebRtcInfo} from '../MediaContracts';\nimport filter from 'lodash/filter';\nimport {TsEnvironmentDetect} from '@techsee/techsee-common/lib/helpers/ts-environment-detect';\nimport {CameraTypes} from '../MediaConstants';\nimport last from 'lodash/last';\nimport first from 'lodash/first';\nimport get from 'lodash/get';\nimport {Nullable} from '@techsee/techsee-common';\n\nconst trace = getMediaTracer('MediaCapabilitiesService');\n\nfunction enumerateMediaDevices(): Promise<MediaDeviceInfo[]> {\n return new Promise((resolve, reject) => {\n if (navigator.mediaDevices && navigator.mediaDevices.enumerateDevices) {\n return navigator.mediaDevices.enumerateDevices().then(resolve).catch(reject);\n }\n\n return resolve([]);\n });\n}\n\ntype GroupedDevices = {\n video: Nullable<{ back?: MediaDeviceInfo; front?: MediaDeviceInfo }>;\n audio: Nullable<MediaDeviceInfo>;\n}\n\nexport class MediaCapabilitiesService {\n private static detectWebRtcService: DetectWebRtcService;\n private static webRtcSupportInfo: ClientWebRtcInfo | undefined;\n private static instance: MediaCapabilitiesService;\n private static devicesList: { video: MediaDeviceInfo[]; audio: MediaDeviceInfo[] };\n private static groupedDevices: GroupedDevices = {video: null, audio: null};\n private static _supportSwitchCamera: boolean;\n private static _backCameraDeviceId: string;\n private static _frontCameraDeviceId: string;\n private static _initPromise: Promise<MediaCapabilitiesService>;\n\n private environmentService = new TsEnvironmentDetect();\n\n public static async getInstance(): Promise<MediaCapabilitiesService> {\n try {\n if (this.instance) {\n return this.instance;\n }\n\n if (this._initPromise) {\n return this._initPromise;\n }\n\n this._initPromise = this.init();\n\n return this._initPromise;\n } catch (err) {\n trace.error(JSON.stringify(err));\n\n throw err;\n }\n }\n\n private static async init(): Promise<MediaCapabilitiesService> {\n try {\n this.instance = new MediaCapabilitiesService();\n\n this.detectWebRtcService = new DetectWebRtcService(DETECT_RTC_ADVISED_TIMEOUT);\n\n this.webRtcSupportInfo = await this.detectWebRtcService.getWebRtcInfo();\n await this.setDevicesList();\n\n trace.info('initialize media capabilities helper successfully');\n\n return this.instance;\n } catch (err) {\n trace.error(JSON.stringify(err));\n\n throw err;\n }\n }\n\n public hasCamera(): boolean {\n return MediaCapabilitiesService.devicesList.video.length > 0 && this.hasGetUserMediaSupported();\n }\n\n public hasMicrophone(): boolean {\n return this.environmentService.isIOS()\n ? this.hasGetUserMediaSupported()\n : MediaCapabilitiesService.devicesList.audio.length > 0 && this.hasGetUserMediaSupported();\n }\n\n public hasWebRTC(): boolean {\n return MediaCapabilitiesService.webRtcSupportInfo!.isWebRTCSupported;\n }\n\n public hasGetUserMediaSupported(): boolean {\n return MediaCapabilitiesService.webRtcSupportInfo!.isGetUserMediaSupported;\n }\n\n private static setGroupedDevices() {\n trace.info('setGroupedDevices', this.devicesList);\n this.groupedDevices = {\n video: this.devicesList.video\n ? {[CameraTypes.BACK]: last(this.devicesList.video), [CameraTypes.FRONT]: first(this.devicesList.video)}\n : null,\n audio: last(this.devicesList.audio) || null\n };\n this._supportSwitchCamera = this.devicesList.video.length > 1;\n this._backCameraDeviceId = get(this.groupedDevices, `video.${CameraTypes.BACK}.deviceId`) || '';\n this._frontCameraDeviceId = get(this.groupedDevices, `video.${CameraTypes.FRONT}.deviceId`) || '';\n }\n\n public static async setDevicesList(): Promise<void> {\n const localDevicesList = this.webRtcSupportInfo!.isWebRTCSupported ? await enumerateMediaDevices() : [];\n\n this.devicesList = {\n video: filter(localDevicesList, (device) => device.kind.toLowerCase() === 'videoinput'),\n audio: filter(localDevicesList, (device) => device.kind.toLowerCase() === 'audioinput')\n };\n\n this.setGroupedDevices();\n }\n\n public get supportSwitchCamera() {\n return MediaCapabilitiesService._supportSwitchCamera;\n }\n\n public get backCameraDeviceId() {\n return MediaCapabilitiesService._backCameraDeviceId;\n }\n\n public get frontCameraDeviceId() {\n return MediaCapabilitiesService._frontCameraDeviceId;\n }\n}\n"]}
|
|
@@ -0,0 +1,369 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var __awaiter = void 0 && (void 0).__awaiter || function (thisArg, _arguments, P, generator) {
|
|
4
|
+
function adopt(value) {
|
|
5
|
+
return value instanceof P ? value : new P(function (resolve) {
|
|
6
|
+
resolve(value);
|
|
7
|
+
});
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
11
|
+
function fulfilled(value) {
|
|
12
|
+
try {
|
|
13
|
+
step(generator.next(value));
|
|
14
|
+
} catch (e) {
|
|
15
|
+
reject(e);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
function rejected(value) {
|
|
20
|
+
try {
|
|
21
|
+
step(generator["throw"](value));
|
|
22
|
+
} catch (e) {
|
|
23
|
+
reject(e);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
function step(result) {
|
|
28
|
+
result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
var __generator = void 0 && (void 0).__generator || function (thisArg, body) {
|
|
36
|
+
var _ = {
|
|
37
|
+
label: 0,
|
|
38
|
+
sent: function sent() {
|
|
39
|
+
if (t[0] & 1) throw t[1];
|
|
40
|
+
return t[1];
|
|
41
|
+
},
|
|
42
|
+
trys: [],
|
|
43
|
+
ops: []
|
|
44
|
+
},
|
|
45
|
+
f,
|
|
46
|
+
y,
|
|
47
|
+
t,
|
|
48
|
+
g;
|
|
49
|
+
return g = {
|
|
50
|
+
next: verb(0),
|
|
51
|
+
"throw": verb(1),
|
|
52
|
+
"return": verb(2)
|
|
53
|
+
}, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
|
|
54
|
+
return this;
|
|
55
|
+
}), g;
|
|
56
|
+
|
|
57
|
+
function verb(n) {
|
|
58
|
+
return function (v) {
|
|
59
|
+
return step([n, v]);
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
function step(op) {
|
|
64
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
65
|
+
|
|
66
|
+
while (_) {
|
|
67
|
+
try {
|
|
68
|
+
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;
|
|
69
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
70
|
+
|
|
71
|
+
switch (op[0]) {
|
|
72
|
+
case 0:
|
|
73
|
+
case 1:
|
|
74
|
+
t = op;
|
|
75
|
+
break;
|
|
76
|
+
|
|
77
|
+
case 4:
|
|
78
|
+
_.label++;
|
|
79
|
+
return {
|
|
80
|
+
value: op[1],
|
|
81
|
+
done: false
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
case 5:
|
|
85
|
+
_.label++;
|
|
86
|
+
y = op[1];
|
|
87
|
+
op = [0];
|
|
88
|
+
continue;
|
|
89
|
+
|
|
90
|
+
case 7:
|
|
91
|
+
op = _.ops.pop();
|
|
92
|
+
|
|
93
|
+
_.trys.pop();
|
|
94
|
+
|
|
95
|
+
continue;
|
|
96
|
+
|
|
97
|
+
default:
|
|
98
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
|
|
99
|
+
_ = 0;
|
|
100
|
+
continue;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
|
|
104
|
+
_.label = op[1];
|
|
105
|
+
break;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
if (op[0] === 6 && _.label < t[1]) {
|
|
109
|
+
_.label = t[1];
|
|
110
|
+
t = op;
|
|
111
|
+
break;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
if (t && _.label < t[2]) {
|
|
115
|
+
_.label = t[2];
|
|
116
|
+
|
|
117
|
+
_.ops.push(op);
|
|
118
|
+
|
|
119
|
+
break;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
if (t[2]) _.ops.pop();
|
|
123
|
+
|
|
124
|
+
_.trys.pop();
|
|
125
|
+
|
|
126
|
+
continue;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
op = body.call(thisArg, _);
|
|
130
|
+
} catch (e) {
|
|
131
|
+
op = [6, e];
|
|
132
|
+
y = 0;
|
|
133
|
+
} finally {
|
|
134
|
+
f = t = 0;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
if (op[0] & 5) throw op[1];
|
|
139
|
+
return {
|
|
140
|
+
value: op[0] ? op[1] : void 0,
|
|
141
|
+
done: true
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
};
|
|
145
|
+
|
|
146
|
+
var __importDefault = void 0 && (void 0).__importDefault || function (mod) {
|
|
147
|
+
return mod && mod.__esModule ? mod : {
|
|
148
|
+
"default": mod
|
|
149
|
+
};
|
|
150
|
+
};
|
|
151
|
+
|
|
152
|
+
Object.defineProperty(exports, "__esModule", {
|
|
153
|
+
value: true
|
|
154
|
+
});
|
|
155
|
+
exports.MediaCapabilitiesService = void 0; // eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
156
|
+
|
|
157
|
+
var MediaTracer_1 = require("../MediaUtils/MediaTracer");
|
|
158
|
+
|
|
159
|
+
var DetectWebRtcService_1 = require("./DetectWebRtcService");
|
|
160
|
+
|
|
161
|
+
var filter_1 = __importDefault(require("lodash/filter"));
|
|
162
|
+
|
|
163
|
+
var ts_environment_detect_1 = require("@techsee/techsee-common/lib/helpers/ts-environment-detect");
|
|
164
|
+
|
|
165
|
+
var MediaConstants_1 = require("../MediaConstants");
|
|
166
|
+
|
|
167
|
+
var last_1 = __importDefault(require("lodash/last"));
|
|
168
|
+
|
|
169
|
+
var first_1 = __importDefault(require("lodash/first"));
|
|
170
|
+
|
|
171
|
+
var get_1 = __importDefault(require("lodash/get"));
|
|
172
|
+
|
|
173
|
+
var trace = MediaTracer_1.getMediaTracer('MediaCapabilitiesService');
|
|
174
|
+
|
|
175
|
+
function enumerateMediaDevices() {
|
|
176
|
+
return new Promise(function (resolve, reject) {
|
|
177
|
+
if (navigator.mediaDevices && navigator.mediaDevices.enumerateDevices) {
|
|
178
|
+
return navigator.mediaDevices.enumerateDevices().then(resolve)["catch"](reject);
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
return resolve([]);
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
var MediaCapabilitiesService =
|
|
186
|
+
/** @class */
|
|
187
|
+
function () {
|
|
188
|
+
function MediaCapabilitiesService() {
|
|
189
|
+
this.environmentService = new ts_environment_detect_1.TsEnvironmentDetect();
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
MediaCapabilitiesService.getInstance = function () {
|
|
193
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
194
|
+
return __generator(this, function (_a) {
|
|
195
|
+
try {
|
|
196
|
+
if (this.instance) {
|
|
197
|
+
return [2
|
|
198
|
+
/*return*/
|
|
199
|
+
, this.instance];
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
if (this._initPromise) {
|
|
203
|
+
return [2
|
|
204
|
+
/*return*/
|
|
205
|
+
, this._initPromise];
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
this._initPromise = this.init();
|
|
209
|
+
return [2
|
|
210
|
+
/*return*/
|
|
211
|
+
, this._initPromise];
|
|
212
|
+
} catch (err) {
|
|
213
|
+
trace.error(JSON.stringify(err));
|
|
214
|
+
throw err;
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
return [2
|
|
218
|
+
/*return*/
|
|
219
|
+
];
|
|
220
|
+
});
|
|
221
|
+
});
|
|
222
|
+
};
|
|
223
|
+
|
|
224
|
+
MediaCapabilitiesService.init = function () {
|
|
225
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
226
|
+
var _a, err_1;
|
|
227
|
+
|
|
228
|
+
return __generator(this, function (_b) {
|
|
229
|
+
switch (_b.label) {
|
|
230
|
+
case 0:
|
|
231
|
+
_b.trys.push([0, 3,, 4]);
|
|
232
|
+
|
|
233
|
+
this.instance = new MediaCapabilitiesService();
|
|
234
|
+
this.detectWebRtcService = new DetectWebRtcService_1.DetectWebRtcService(DetectWebRtcService_1.DETECT_RTC_ADVISED_TIMEOUT);
|
|
235
|
+
_a = this;
|
|
236
|
+
return [4
|
|
237
|
+
/*yield*/
|
|
238
|
+
, this.detectWebRtcService.getWebRtcInfo()];
|
|
239
|
+
|
|
240
|
+
case 1:
|
|
241
|
+
_a.webRtcSupportInfo = _b.sent();
|
|
242
|
+
return [4
|
|
243
|
+
/*yield*/
|
|
244
|
+
, this.setDevicesList()];
|
|
245
|
+
|
|
246
|
+
case 2:
|
|
247
|
+
_b.sent();
|
|
248
|
+
|
|
249
|
+
trace.info('initialize media capabilities helper successfully');
|
|
250
|
+
return [2
|
|
251
|
+
/*return*/
|
|
252
|
+
, this.instance];
|
|
253
|
+
|
|
254
|
+
case 3:
|
|
255
|
+
err_1 = _b.sent();
|
|
256
|
+
trace.error(JSON.stringify(err_1));
|
|
257
|
+
throw err_1;
|
|
258
|
+
|
|
259
|
+
case 4:
|
|
260
|
+
return [2
|
|
261
|
+
/*return*/
|
|
262
|
+
];
|
|
263
|
+
}
|
|
264
|
+
});
|
|
265
|
+
});
|
|
266
|
+
};
|
|
267
|
+
|
|
268
|
+
MediaCapabilitiesService.prototype.hasCamera = function () {
|
|
269
|
+
return MediaCapabilitiesService.devicesList.video.length > 0 && this.hasGetUserMediaSupported();
|
|
270
|
+
};
|
|
271
|
+
|
|
272
|
+
MediaCapabilitiesService.prototype.hasMicrophone = function () {
|
|
273
|
+
return this.environmentService.isIOS() ? this.hasGetUserMediaSupported() : MediaCapabilitiesService.devicesList.audio.length > 0 && this.hasGetUserMediaSupported();
|
|
274
|
+
};
|
|
275
|
+
|
|
276
|
+
MediaCapabilitiesService.prototype.hasWebRTC = function () {
|
|
277
|
+
return MediaCapabilitiesService.webRtcSupportInfo.isWebRTCSupported;
|
|
278
|
+
};
|
|
279
|
+
|
|
280
|
+
MediaCapabilitiesService.prototype.hasGetUserMediaSupported = function () {
|
|
281
|
+
return MediaCapabilitiesService.webRtcSupportInfo.isGetUserMediaSupported;
|
|
282
|
+
};
|
|
283
|
+
|
|
284
|
+
MediaCapabilitiesService.setGroupedDevices = function () {
|
|
285
|
+
var _a;
|
|
286
|
+
|
|
287
|
+
trace.info('setGroupedDevices', this.devicesList);
|
|
288
|
+
this.groupedDevices = {
|
|
289
|
+
video: this.devicesList.video ? (_a = {}, _a[MediaConstants_1.CameraTypes.BACK] = last_1["default"](this.devicesList.video), _a[MediaConstants_1.CameraTypes.FRONT] = first_1["default"](this.devicesList.video), _a) : null,
|
|
290
|
+
audio: last_1["default"](this.devicesList.audio) || null
|
|
291
|
+
};
|
|
292
|
+
this._supportSwitchCamera = this.devicesList.video.length > 1;
|
|
293
|
+
this._backCameraDeviceId = get_1["default"](this.groupedDevices, "video." + MediaConstants_1.CameraTypes.BACK + ".deviceId") || '';
|
|
294
|
+
this._frontCameraDeviceId = get_1["default"](this.groupedDevices, "video." + MediaConstants_1.CameraTypes.FRONT + ".deviceId") || '';
|
|
295
|
+
};
|
|
296
|
+
|
|
297
|
+
MediaCapabilitiesService.setDevicesList = function () {
|
|
298
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
299
|
+
var localDevicesList, _a;
|
|
300
|
+
|
|
301
|
+
return __generator(this, function (_b) {
|
|
302
|
+
switch (_b.label) {
|
|
303
|
+
case 0:
|
|
304
|
+
if (!this.webRtcSupportInfo.isWebRTCSupported) return [3
|
|
305
|
+
/*break*/
|
|
306
|
+
, 2];
|
|
307
|
+
return [4
|
|
308
|
+
/*yield*/
|
|
309
|
+
, enumerateMediaDevices()];
|
|
310
|
+
|
|
311
|
+
case 1:
|
|
312
|
+
_a = _b.sent();
|
|
313
|
+
return [3
|
|
314
|
+
/*break*/
|
|
315
|
+
, 3];
|
|
316
|
+
|
|
317
|
+
case 2:
|
|
318
|
+
_a = [];
|
|
319
|
+
_b.label = 3;
|
|
320
|
+
|
|
321
|
+
case 3:
|
|
322
|
+
localDevicesList = _a;
|
|
323
|
+
this.devicesList = {
|
|
324
|
+
video: filter_1["default"](localDevicesList, function (device) {
|
|
325
|
+
return device.kind.toLowerCase() === 'videoinput';
|
|
326
|
+
}),
|
|
327
|
+
audio: filter_1["default"](localDevicesList, function (device) {
|
|
328
|
+
return device.kind.toLowerCase() === 'audioinput';
|
|
329
|
+
})
|
|
330
|
+
};
|
|
331
|
+
this.setGroupedDevices();
|
|
332
|
+
return [2
|
|
333
|
+
/*return*/
|
|
334
|
+
];
|
|
335
|
+
}
|
|
336
|
+
});
|
|
337
|
+
});
|
|
338
|
+
};
|
|
339
|
+
|
|
340
|
+
Object.defineProperty(MediaCapabilitiesService.prototype, "supportSwitchCamera", {
|
|
341
|
+
get: function get() {
|
|
342
|
+
return MediaCapabilitiesService._supportSwitchCamera;
|
|
343
|
+
},
|
|
344
|
+
enumerable: false,
|
|
345
|
+
configurable: true
|
|
346
|
+
});
|
|
347
|
+
Object.defineProperty(MediaCapabilitiesService.prototype, "backCameraDeviceId", {
|
|
348
|
+
get: function get() {
|
|
349
|
+
return MediaCapabilitiesService._backCameraDeviceId;
|
|
350
|
+
},
|
|
351
|
+
enumerable: false,
|
|
352
|
+
configurable: true
|
|
353
|
+
});
|
|
354
|
+
Object.defineProperty(MediaCapabilitiesService.prototype, "frontCameraDeviceId", {
|
|
355
|
+
get: function get() {
|
|
356
|
+
return MediaCapabilitiesService._frontCameraDeviceId;
|
|
357
|
+
},
|
|
358
|
+
enumerable: false,
|
|
359
|
+
configurable: true
|
|
360
|
+
});
|
|
361
|
+
MediaCapabilitiesService.groupedDevices = {
|
|
362
|
+
video: null,
|
|
363
|
+
audio: null
|
|
364
|
+
};
|
|
365
|
+
return MediaCapabilitiesService;
|
|
366
|
+
}();
|
|
367
|
+
|
|
368
|
+
exports.MediaCapabilitiesService = MediaCapabilitiesService;
|
|
369
|
+
//# sourceMappingURL=MediaCapabilitiesService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["MultiParty/MediaCapabilitiesService.js"],"names":["__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","Promise","reject","fulfilled","step","next","e","rejected","result","done","then","apply","__generator","body","_","label","sent","t","trys","ops","f","y","g","verb","Symbol","iterator","n","v","op","TypeError","call","pop","length","push","__importDefault","mod","__esModule","Object","defineProperty","exports","MediaCapabilitiesService","MediaTracer_1","require","DetectWebRtcService_1","filter_1","ts_environment_detect_1","MediaConstants_1","last_1","first_1","get_1","trace","getMediaTracer","enumerateMediaDevices","navigator","mediaDevices","enumerateDevices","environmentService","TsEnvironmentDetect","getInstance","_a","instance","_initPromise","init","err","error","JSON","stringify","err_1","_b","detectWebRtcService","DetectWebRtcService","DETECT_RTC_ADVISED_TIMEOUT","getWebRtcInfo","webRtcSupportInfo","setDevicesList","info","prototype","hasCamera","devicesList","video","hasGetUserMediaSupported","hasMicrophone","isIOS","audio","hasWebRTC","isWebRTCSupported","isGetUserMediaSupported","setGroupedDevices","groupedDevices","CameraTypes","BACK","FRONT","_supportSwitchCamera","_backCameraDeviceId","_frontCameraDeviceId","localDevicesList","device","kind","toLowerCase","get","enumerable","configurable"],"mappings":"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","file":"MediaCapabilitiesService.js","sourcesContent":["\"use strict\";\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 __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MediaCapabilitiesService = void 0;\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nvar MediaTracer_1 = require(\"../MediaUtils/MediaTracer\");\nvar DetectWebRtcService_1 = require(\"./DetectWebRtcService\");\nvar filter_1 = __importDefault(require(\"lodash/filter\"));\nvar ts_environment_detect_1 = require(\"@techsee/techsee-common/lib/helpers/ts-environment-detect\");\nvar MediaConstants_1 = require(\"../MediaConstants\");\nvar last_1 = __importDefault(require(\"lodash/last\"));\nvar first_1 = __importDefault(require(\"lodash/first\"));\nvar get_1 = __importDefault(require(\"lodash/get\"));\nvar trace = MediaTracer_1.getMediaTracer('MediaCapabilitiesService');\nfunction enumerateMediaDevices() {\n return new Promise(function (resolve, reject) {\n if (navigator.mediaDevices && navigator.mediaDevices.enumerateDevices) {\n return navigator.mediaDevices.enumerateDevices().then(resolve).catch(reject);\n }\n return resolve([]);\n });\n}\nvar MediaCapabilitiesService = /** @class */ (function () {\n function MediaCapabilitiesService() {\n this.environmentService = new ts_environment_detect_1.TsEnvironmentDetect();\n }\n MediaCapabilitiesService.getInstance = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n try {\n if (this.instance) {\n return [2 /*return*/, this.instance];\n }\n if (this._initPromise) {\n return [2 /*return*/, this._initPromise];\n }\n this._initPromise = this.init();\n return [2 /*return*/, this._initPromise];\n }\n catch (err) {\n trace.error(JSON.stringify(err));\n throw err;\n }\n return [2 /*return*/];\n });\n });\n };\n MediaCapabilitiesService.init = function () {\n return __awaiter(this, void 0, void 0, function () {\n var _a, err_1;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _b.trys.push([0, 3, , 4]);\n this.instance = new MediaCapabilitiesService();\n this.detectWebRtcService = new DetectWebRtcService_1.DetectWebRtcService(DetectWebRtcService_1.DETECT_RTC_ADVISED_TIMEOUT);\n _a = this;\n return [4 /*yield*/, this.detectWebRtcService.getWebRtcInfo()];\n case 1:\n _a.webRtcSupportInfo = _b.sent();\n return [4 /*yield*/, this.setDevicesList()];\n case 2:\n _b.sent();\n trace.info('initialize media capabilities helper successfully');\n return [2 /*return*/, this.instance];\n case 3:\n err_1 = _b.sent();\n trace.error(JSON.stringify(err_1));\n throw err_1;\n case 4: return [2 /*return*/];\n }\n });\n });\n };\n MediaCapabilitiesService.prototype.hasCamera = function () {\n return MediaCapabilitiesService.devicesList.video.length > 0 && this.hasGetUserMediaSupported();\n };\n MediaCapabilitiesService.prototype.hasMicrophone = function () {\n return this.environmentService.isIOS()\n ? this.hasGetUserMediaSupported()\n : MediaCapabilitiesService.devicesList.audio.length > 0 && this.hasGetUserMediaSupported();\n };\n MediaCapabilitiesService.prototype.hasWebRTC = function () {\n return MediaCapabilitiesService.webRtcSupportInfo.isWebRTCSupported;\n };\n MediaCapabilitiesService.prototype.hasGetUserMediaSupported = function () {\n return MediaCapabilitiesService.webRtcSupportInfo.isGetUserMediaSupported;\n };\n MediaCapabilitiesService.setGroupedDevices = function () {\n var _a;\n trace.info('setGroupedDevices', this.devicesList);\n this.groupedDevices = {\n video: this.devicesList.video\n ? (_a = {}, _a[MediaConstants_1.CameraTypes.BACK] = last_1.default(this.devicesList.video), _a[MediaConstants_1.CameraTypes.FRONT] = first_1.default(this.devicesList.video), _a) : null,\n audio: last_1.default(this.devicesList.audio) || null\n };\n this._supportSwitchCamera = this.devicesList.video.length > 1;\n this._backCameraDeviceId = get_1.default(this.groupedDevices, \"video.\" + MediaConstants_1.CameraTypes.BACK + \".deviceId\") || '';\n this._frontCameraDeviceId = get_1.default(this.groupedDevices, \"video.\" + MediaConstants_1.CameraTypes.FRONT + \".deviceId\") || '';\n };\n MediaCapabilitiesService.setDevicesList = function () {\n return __awaiter(this, void 0, void 0, function () {\n var localDevicesList, _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!this.webRtcSupportInfo.isWebRTCSupported) return [3 /*break*/, 2];\n return [4 /*yield*/, enumerateMediaDevices()];\n case 1:\n _a = _b.sent();\n return [3 /*break*/, 3];\n case 2:\n _a = [];\n _b.label = 3;\n case 3:\n localDevicesList = _a;\n this.devicesList = {\n video: filter_1.default(localDevicesList, function (device) { return device.kind.toLowerCase() === 'videoinput'; }),\n audio: filter_1.default(localDevicesList, function (device) { return device.kind.toLowerCase() === 'audioinput'; })\n };\n this.setGroupedDevices();\n return [2 /*return*/];\n }\n });\n });\n };\n Object.defineProperty(MediaCapabilitiesService.prototype, \"supportSwitchCamera\", {\n get: function () {\n return MediaCapabilitiesService._supportSwitchCamera;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MediaCapabilitiesService.prototype, \"backCameraDeviceId\", {\n get: function () {\n return MediaCapabilitiesService._backCameraDeviceId;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MediaCapabilitiesService.prototype, \"frontCameraDeviceId\", {\n get: function () {\n return MediaCapabilitiesService._frontCameraDeviceId;\n },\n enumerable: false,\n configurable: true\n });\n MediaCapabilitiesService.groupedDevices = { video: null, audio: null };\n return MediaCapabilitiesService;\n}());\nexports.MediaCapabilitiesService = MediaCapabilitiesService;\n\n//# sourceMappingURL=MediaCapabilitiesService.js.map\n"]}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare const checkIsMobile: () => boolean;
|
|
2
|
+
export declare const checkWebRtc: () => Promise<boolean>;
|
|
3
|
+
export declare function checkVideoCapabilities(): Promise<boolean>;
|
|
4
|
+
export declare function checkAudioCapabilities(): Promise<boolean>;
|
|
5
|
+
export declare function checkSupportSwitchCamera(): Promise<boolean>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/MultiParty/MediaCapabilitiesUtils.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,aAAa,QAAO,OAIhC,CAAC;AAGF,eAAO,MAAM,WAAW,QAAa,QAAQ,OAAO,CAQnD,CAAC;AAEF,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,OAAO,CAAC,CAQ/D;AAED,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,OAAO,CAAC,CAQ/D;AAED,wBAAsB,wBAAwB,IAAI,OAAO,CAAC,OAAO,CAAC,CAQjE","file":"MediaCapabilitiesUtils.d.ts","sourcesContent":["import {TsEnvironmentDetect} from '@techsee/techsee-common/lib/helpers/ts-environment-detect';\nimport {getMediaTracer} from '../MediaUtils';\nimport {MediaCapabilitiesService} from './MediaCapabilitiesService';\n\nconst trace = getMediaTracer('MediaCapabilitiesUtils');\n\nexport const checkIsMobile = (): boolean => {\n const environmentService = new TsEnvironmentDetect();\n\n return environmentService.isMobile();\n};\n\n\nexport const checkWebRtc = async (): Promise<boolean> => {\n try {\n return (await MediaCapabilitiesService.getInstance()).hasWebRTC();\n } catch (err) {\n trace.error(JSON.stringify(err));\n }\n\n return false;\n};\n\nexport async function checkVideoCapabilities(): Promise<boolean> {\n try {\n return (await MediaCapabilitiesService.getInstance()).hasCamera();\n } catch (err) {\n trace.error(JSON.stringify(err));\n }\n\n return false;\n}\n\nexport async function checkAudioCapabilities(): Promise<boolean> {\n try {\n return (await MediaCapabilitiesService.getInstance()).hasMicrophone();\n } catch (err) {\n trace.error(JSON.stringify(err));\n }\n\n return false;\n}\n\nexport async function checkSupportSwitchCamera(): Promise<boolean> {\n try {\n return (await MediaCapabilitiesService.getInstance()).supportSwitchCamera;\n } catch (err) {\n trace.error(JSON.stringify(err));\n }\n\n return false;\n}\n"]}
|