@techsee/techsee-media-service 0.7.0-alpha.2 → 0.7.1
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 +21 -0
- package/lib/LocalStreamManager.d.ts.map +1 -0
- package/lib/LocalStreamManager.js +268 -0
- package/lib/LocalStreamManager.js.map +1 -0
- package/lib/MediaConstants.d.ts +52 -0
- package/lib/MediaConstants.d.ts.map +1 -0
- package/lib/MediaConstants.js +68 -0
- package/lib/MediaConstants.js.map +1 -0
- package/lib/MediaContracts.d.ts +122 -0
- package/lib/MediaContracts.d.ts.map +1 -0
- package/lib/MediaContracts.js +6 -0
- package/lib/MediaContracts.js.map +1 -0
- package/lib/MediaPublisher.d.ts +14 -0
- package/lib/MediaPublisher.d.ts.map +1 -0
- package/lib/MediaPublisher.js +43 -0
- package/lib/MediaPublisher.js.map +1 -0
- package/lib/MediaServiceBase.d.ts +64 -0
- package/lib/MediaServiceBase.d.ts.map +1 -0
- package/lib/MediaServiceBase.js +591 -0
- package/lib/MediaServiceBase.js.map +1 -0
- package/lib/MediaSession/MediaSessionBase.d.ts +23 -0
- package/lib/MediaSession/MediaSessionBase.d.ts.map +1 -0
- package/lib/MediaSession/MediaSessionBase.js +63 -0
- package/lib/MediaSession/MediaSessionBase.js.map +1 -0
- package/lib/MediaSession/SessionOpentok.d.ts +49 -0
- package/lib/MediaSession/SessionOpentok.d.ts.map +1 -0
- package/lib/MediaSession/SessionOpentok.js +379 -0
- package/lib/MediaSession/SessionOpentok.js.map +1 -0
- package/lib/MediaSession/SessionTurn.d.ts +32 -0
- package/lib/MediaSession/SessionTurn.d.ts.map +1 -0
- package/lib/MediaSession/SessionTurn.js +439 -0
- package/lib/MediaSession/SessionTurn.js.map +1 -0
- package/lib/MediaSession/TurnConstants.d.ts +18 -0
- package/lib/MediaSession/TurnConstants.d.ts.map +1 -0
- package/lib/MediaSession/TurnConstants.js +36 -0
- package/lib/MediaSession/TurnConstants.js.map +1 -0
- package/lib/MediaSubscriber.d.ts +36 -0
- package/lib/MediaSubscriber.d.ts.map +1 -0
- package/lib/MediaSubscriber.js +208 -0
- package/lib/MediaSubscriber.js.map +1 -0
- package/lib/MediaUtils/Compatibility.d.ts +11 -0
- package/lib/MediaUtils/Compatibility.d.ts.map +1 -0
- package/lib/MediaUtils/Compatibility.js +71 -0
- package/lib/MediaUtils/Compatibility.js.map +1 -0
- package/lib/MediaUtils/MediaDomUtils.d.ts +4 -0
- package/lib/MediaUtils/MediaDomUtils.d.ts.map +1 -0
- package/lib/MediaUtils/MediaDomUtils.js +200 -0
- package/lib/MediaUtils/MediaDomUtils.js.map +1 -0
- package/lib/MediaUtils/MediaTracer.d.ts +3 -0
- package/lib/MediaUtils/MediaTracer.d.ts.map +1 -0
- package/lib/MediaUtils/MediaTracer.js +12 -0
- package/lib/MediaUtils/MediaTracer.js.map +1 -0
- package/lib/TechseeMediaStream.d.ts +14 -0
- package/lib/TechseeMediaStream.d.ts.map +1 -0
- package/lib/TechseeMediaStream.js +58 -0
- package/lib/TechseeMediaStream.js.map +1 -0
- package/lib/oldCode/constants.js.map +1 -0
- package/lib/oldCode/event-emitter.js.map +1 -0
- package/lib/{index.js → oldCode/index.js} +1 -1
- package/lib/oldCode/index.js.map +1 -0
- package/lib/{opentok → oldCode/opentok}/session.js +6 -0
- package/lib/oldCode/opentok/session.js.map +1 -0
- package/lib/oldCode/opentok/stream.js.map +1 -0
- package/lib/oldCode/publisher.js.map +1 -0
- package/lib/{service.js → oldCode/service.js} +4 -6
- package/lib/oldCode/service.js.map +1 -0
- package/lib/oldCode/session.js.map +1 -0
- package/lib/oldCode/stream.js.map +1 -0
- package/lib/oldCode/subscriber.js.map +1 -0
- package/lib/oldCode/tracer.d.ts +35 -0
- package/lib/oldCode/tracer.d.ts.map +1 -0
- package/lib/oldCode/tracer.js +151 -0
- package/lib/oldCode/tracer.js.map +1 -0
- package/lib/oldCode/utils/ImageFixer.d.ts +1 -0
- package/lib/oldCode/utils/ImageFixer.d.ts.map +1 -0
- package/lib/oldCode/utils/ImageFixer.js +58 -0
- package/lib/oldCode/utils/ImageFixer.js.map +1 -0
- package/lib/oldCode/webrtc/constants.js.map +1 -0
- package/lib/{webrtc → oldCode/webrtc}/helper.js +2 -4
- package/lib/oldCode/webrtc/helper.js.map +1 -0
- package/lib/oldCode/webrtc/session-kms.js.map +1 -0
- package/lib/oldCode/webrtc/session-loopback.js.map +1 -0
- package/lib/{webrtc → oldCode/webrtc}/session-turn.js +47 -41
- package/lib/oldCode/webrtc/session-turn.js.map +1 -0
- package/lib/{webrtc → oldCode/webrtc}/session-turn.v2.js +85 -48
- package/lib/oldCode/webrtc/session-turn.v2.js.map +1 -0
- package/lib/oldCode/webrtc/session.js.map +1 -0
- package/lib/{webrtc → oldCode/webrtc}/stream.js +7 -9
- package/lib/oldCode/webrtc/stream.js.map +1 -0
- package/lib/oldCode/webrtc/temasys/adapter-loader.js.map +1 -0
- package/lib/oldCode/webrtc/temasys/adapter.js.map +1 -0
- package/lib/oldCode/webrtc/webrtc-ie-shim.js.map +1 -0
- package/lib/qos/raw-qos.js.map +1 -1
- package/lib/webrtc-ie-shim.js +3066 -0
- package/lib/webrtc-ie-shim.js.map +1 -0
- package/package.json +7 -5
- package/lib/constants.js.map +0 -1
- package/lib/event-emitter.js.map +0 -1
- package/lib/index.js.map +0 -1
- package/lib/opentok/session.js.map +0 -1
- package/lib/opentok/stream.js.map +0 -1
- package/lib/publisher.js.map +0 -1
- package/lib/service.js.map +0 -1
- package/lib/session.js.map +0 -1
- package/lib/stream.js.map +0 -1
- package/lib/subscriber.js.map +0 -1
- package/lib/tracer.js +0 -22
- package/lib/tracer.js.map +0 -1
- package/lib/v2/Contracts.d.ts +0 -41
- package/lib/v2/Contracts.d.ts.map +0 -1
- package/lib/v2/Contracts.js +0 -31
- package/lib/v2/Contracts.js.map +0 -1
- package/lib/v2/LocalStreamManager.d.ts +0 -8
- package/lib/v2/LocalStreamManager.d.ts.map +0 -1
- package/lib/v2/LocalStreamManager.js +0 -94
- package/lib/v2/LocalStreamManager.js.map +0 -1
- package/lib/v2/MediaServiceBase.d.ts +0 -24
- package/lib/v2/MediaServiceBase.d.ts.map +0 -1
- package/lib/v2/MediaServiceBase.js +0 -85
- package/lib/v2/MediaServiceBase.js.map +0 -1
- package/lib/v2/MediaSubscriber.d.ts +0 -8
- package/lib/v2/MediaSubscriber.d.ts.map +0 -1
- package/lib/v2/MediaSubscriber.js +0 -17
- package/lib/v2/MediaSubscriber.js.map +0 -1
- package/lib/webrtc/constants.js.map +0 -1
- package/lib/webrtc/helper.js.map +0 -1
- package/lib/webrtc/session-kms.js.map +0 -1
- package/lib/webrtc/session-loopback.js.map +0 -1
- package/lib/webrtc/session-turn.js.map +0 -1
- package/lib/webrtc/session-turn.v2.js.map +0 -1
- package/lib/webrtc/session.js.map +0 -1
- package/lib/webrtc/stream.js.map +0 -1
- package/lib/webrtc/temasys/adapter-loader.js.map +0 -1
- package/lib/webrtc/temasys/adapter.js.map +0 -1
- package/lib/webrtc/webrtc-ie-shim.js.map +0 -1
- /package/lib/{constants.js → oldCode/constants.js} +0 -0
- /package/lib/{event-emitter.js → oldCode/event-emitter.js} +0 -0
- /package/lib/{opentok → oldCode/opentok}/stream.js +0 -0
- /package/lib/{publisher.js → oldCode/publisher.js} +0 -0
- /package/lib/{session.js → oldCode/session.js} +0 -0
- /package/lib/{stream.js → oldCode/stream.js} +0 -0
- /package/lib/{subscriber.js → oldCode/subscriber.js} +0 -0
- /package/lib/{webrtc → oldCode/webrtc}/constants.js +0 -0
- /package/lib/{webrtc → oldCode/webrtc}/session-kms.js +0 -0
- /package/lib/{webrtc → oldCode/webrtc}/session-loopback.js +0 -0
- /package/lib/{webrtc → oldCode/webrtc}/session.js +0 -0
- /package/lib/{webrtc → oldCode/webrtc}/temasys/adapter-loader.js +0 -0
- /package/lib/{webrtc → oldCode/webrtc}/temasys/adapter.js +0 -0
- /package/lib/{webrtc → oldCode/webrtc}/webrtc-ie-shim.js +0 -0
package/lib/publisher.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["publisher.js"],"names":["PUBLISHER_EVENTS","STREAM_CREATED","DESTROYED","VIDEO_DIMENSIONS_CHANGED","EVENTS","TsMediaPublisher","session","data","_","assign","_session","publish","destroy","destroyPublisher","publishAudio","stream","Promise","reject","publishVideo","getSnapshot","options","turnFlashlight","isTorchOn","setAutoLightOffTimer","flashlightTimeout","EventEmitter"],"mappings":";;;;;AAAA;;;;;;;;AAEA;;;AAGA,IAAMA,mBAAmB;AACrBC,oBAAgB,gBADK;AAErBC,eAAW,WAFU;AAGrBC,8BAA0B;AAHL,CAAzB;;QAM6BC,M,GAApBJ,gB;;AAET;;;;;;;;;;;;IAWaK,gB,WAAAA,gB;;;AACT,8BAAYC,OAAZ,EAAqBC,IAArB,EAA2B;AAAA;;AAAA,qDACvB,wBADuB;;AAGvBC,UAAEC,MAAF,QAAeF,IAAf;;AAEA,cAAKG,QAAL,GAAgBJ,OAAhB;AALuB;AAM1B;;AAED;;;;;;;;;;;;;+BAWAK,O,sBAAU;AACN,eAAO,KAAKD,QAAL,CAAcC,OAAd,CAAsB,IAAtB,CAAP;AACH,K;;AAED;;;;;;;;+BAMAC,O,sBAAU;AACN,eAAO,KAAKF,QAAL,CAAcG,gBAAd,CAA+B,IAA/B,CAAP;AACH,K;;AAED;;;;;;;;;;+BAQAC,Y,yBAAaH,O,EAAS;AAClB,YAAI,KAAKI,MAAT,EAAiB;AACb,mBAAO,KAAKA,MAAL,CAAYD,YAAZ,CAAyBH,OAAzB,CAAP;AACH;;AAED,eAAOK,QAAQC,MAAR,EAAP;AACH,K;;AAED;;;;;;;;;;+BAQAC,Y,yBAAaP,O,EAAS;AAClB,YAAI,KAAKI,MAAT,EAAiB;AACb,mBAAO,KAAKA,MAAL,CAAYG,YAAZ,CAAyBP,OAAzB,CAAP;AACH;;AAED,eAAOK,QAAQC,MAAR,EAAP;AACH,K;;AAED;;;;;;;;;;+BAQAE,W,wBAAYC,O,EAAS;AACjB;AACA,eAAO,KAAKL,MAAL,CAAYI,WAAZ,CAAwB,IAAxB,EAA8B,CAA9B,EAAiCC,OAAjC,CAAP;AACH,K;;+BAEDC,c,6BAAiC;AAAA,YAAlBC,SAAkB,uEAAN,IAAM;;AAC7B,eAAO,KAAKP,MAAL,CAAYM,cAAZ,CAA2BC,SAA3B,CAAP;AACH,K;;+BAEDC,oB,iCAAqBC,iB,EAAmB;AACpC,eAAO,KAAKT,MAAL,CAAYQ,oBAAZ,CAAiCC,iBAAjC,CAAP;AACH,K;;;EArFiCC,0B","file":"publisher.js","sourcesContent":["import { EventEmitter } from './event-emitter';\n\n/**\n * @enum PUBLISHER_EVENTS\n */\nconst PUBLISHER_EVENTS = {\n STREAM_CREATED: 'STREAM_CREATED',\n DESTROYED: 'DESTROYED',\n VIDEO_DIMENSIONS_CHANGED: 'VIDEO_DIMENSIONS_CHANGED',\n};\n\nexport { PUBLISHER_EVENTS as EVENTS };\n\n/**\n * Publisher object represents publishing a media stream.\n *\n * Exposes session and stream wrapper methods specific for media publishing.\n *\n * Instance is returned by TsMediaSession.createPublisher() call\n *\n * @class\n *\n * @see TsMediaSession\n */\nexport class TsMediaPublisher extends EventEmitter {\n constructor(session, data) {\n super();\n\n _.assign(this, data);\n\n this._session = session;\n }\n\n /**\n * Publish media stream to a server.\n *\n * @method\n *\n * @returns { Promise }\n *\n * @fires PUBLISHER_EVENTS#STREAM_CREATED\n * @fires SESSION_EVENTS#STREAM_PROPERTY_CHANGED\n * @fires STREAM_EVENTS#PROPERTY_CHANGED\n */\n publish() {\n return this._session.publish(this);\n }\n\n /**\n * Unpublish the media strem and destroy publisher's view\n *\n * @method\n * @return { Promise }\n */\n destroy() {\n return this._session.destroyPublisher(this);\n }\n\n /**\n * Whether or not publish audio\n *\n * @method\n * @param { Boolean } publish\n *\n * @returns { Promise }\n */\n publishAudio(publish) {\n if (this.stream) {\n return this.stream.publishAudio(publish);\n }\n\n return Promise.reject();\n }\n\n /**\n * Whether or not publish video\n *\n * @method\n * @param { Boolean } publish\n *\n * @returns { Promise }\n */\n publishVideo(publish) {\n if (this.stream) {\n return this.stream.publishVideo(publish);\n }\n\n return Promise.reject();\n }\n\n /**\n * Get snapshot of the current frame in the media stream\n *\n * @method\n * @param { Object } options Snapshot options: format, quality and crop positions\n *\n * @returns { Promise<String> } snapshot\n */\n getSnapshot(options) {\n // Since a video publisher (the client) won't be used in IE, we can drop the timeout.\n return this.stream.getSnapshot(this, 0, options);\n }\n\n turnFlashlight(isTorchOn = true) {\n return this.stream.turnFlashlight(isTorchOn);\n }\n\n setAutoLightOffTimer(flashlightTimeout) {\n return this.stream.setAutoLightOffTimer(flashlightTimeout);\n }\n}\n\n"]}
|
package/lib/service.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["service.js"],"names":["trace","window","WebRtcSessionTrace","environmentDetect","TsEnvironmentDetect","isIE11","require","isChrome","majorVersion","_isOTDefined","OT","e","_waitForOT","Promise","resolve","isDefined","reduce","Array","WAIT_FOR_OPENTOK_INITIALIZATION_MAX_ATTEMPTS","delay","WAIT_FOR_OPENTOK_INITIALIZATION_INTERVAL","then","reject","SERVICE_EVENTS","SESSION_CREATED","EXCEPTION","EVENTS","sessions","latestLocalStream","userMediaPromise","TsMediaServiceFacade","createLocalMediaStream","bind","destroyLocalMediaStream","constraints","videoTrack","getVideoTracks","length","readyState","navigator","mediaDevices","getUserMedia","stream","catch","err","getTracks","forEach","track","stop","toggleMicrophone","enableMic","audioTracks","getAudioTracks","enabled","getDevices","error","devices","enumerateDevices","verifyCameraAccess","deviceOpts","isVideoPlaySupportedOnDevice","WebRTCAdapter","OTPlugin","isInstalled","initSession","isMobile","resolution","mediaServiceType","credentials","isLoopback","MEDIA_SERVICE_TYPES","MEDIASERVER","sessionOptions","tsMediaServer","audio","video","KMSWebRTCSession","TURNSERVER","creds","turnServer","opentok","LoopbackWebRTCSession","TurnWebRTCSession","getTurnMediaSessionV2","mediaSession","subscribeTurnSessionEvents","TsOpenTokSession","session","emit","push","clientType","CLIENT_TYPES","INITIATOR","GUEST","sessionParams","streamFactory","TurnWebRtcSessionV2","disconnectHandler","off","SESSION_EVENTS","DISCONNECTED","on","EventEmitter","TsMediaService"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA;;AAKA;;AACA;;;;;;;;AAEA,IAAMA,QAAQ,uBAAU,oBAAV,EAAgC;AAAA,WAAMC,OAAOC,kBAAP,KAA8B,IAApC;AAAA,CAAhC,CAAd;;AAGA,IAAMC,oBAAoB,IAAIC,wCAAJ,EAA1B;AACA,IAAMC,SAASF,kBAAkBE,MAAlB,EAAf;;AAEA,IAAIA,MAAJ,EAAY;AACRC,YAAQ,4BAAR;AACH,CAFD,MAEO,IAAI,EAAEH,kBAAkBI,QAAlB,MAAiCJ,kBAAkBK,YAAlB,KAAmC,EAAtE,CAAJ,EAAgF;AACnFF,YAAQ,oCAAR,EADmF,CACpC;AAClD;;AAED,SAASG,YAAT,GAAwB;AACpB,QAAI;AACA,eAAO,CAAC,CAACC,EAAT;AACH,KAFD,CAEE,OAAOC,CAAP,EAAU;AACR,eAAO,KAAP;AACH;AACJ;;AAED,SAASC,UAAT,GAAsB;AAClB,QAAIH,cAAJ,EAAoB;AAChB,eAAOI,QAAQC,OAAR,EAAP;AACH;;AAED,QAAIC,YAAY,KAAhB;;AAEA,WAAOF,QAAQG,MAAR,CACH,IAAIC,KAAJ,CAAUC,uDAAV,CADG,EAEH,YAAM;AACF,YAAIH,aAAaN,cAAjB,EAAiC;AAC7BM,wBAAY,IAAZ;;AAEA,mBAAOF,QAAQC,OAAR,EAAP;AACH;;AAED,eAAOD,QAAQM,KAAR,CAAcC,mDAAd,CAAP;AACH,KAVE,EAUA,CAVA,EAWFC,IAXE,CAWG;AAAA,eAAMN,aAAaF,QAAQS,MAAR,CAAe,iBAAf,CAAnB;AAAA,KAXH,CAAP;AAYH;;AAED;;;AAGA,IAAMC,iBAAiB;AACnBC,qBAAiB,iBADE;AAEnBC,eAAW;AAFQ,CAAvB;;QAK0BC,M,GAAlBH,c;;;AAER,IAAMI,WAAW,EAAjB;AACA,IAAIC,oBAAoB,IAAxB;AACA,IAAIC,mBAAmB,IAAvB;;AAEA;;;;;;;;IAOMC,oB;;;AACF,oCAAc;AAAA;;AAAA,qDACV,wBADU;;AAGV,cAAKC,sBAAL,GAA8B,MAAKA,sBAAL,CAA4BC,IAA5B,OAA9B;AACA,cAAKC,uBAAL,GAA+B,MAAKA,uBAAL,CAA6BD,IAA7B,OAA/B;AAJU;AAKb;;AAED;;;;;;;;;mCAWAD,sB,mCAAuBG,W,EAAa;AAChClC,cAAM,wBAAN;AACA,YAAI6B,gBAAJ,EAAsB;AAClB,mBAAOA,gBAAP;AACH;;AAED,YAAID,iBAAJ,EAAuB;AACnB,gBAAMO,aAAaP,kBAAkBQ,cAAlB,EAAnB;AACA,gBAAID,WAAWE,MAAX,GAAoB,CAApB,IAAyBF,WAAW,CAAX,EAAcG,UAAd,KAA6B,MAA1D,EAAkE;AAC9D,uBAAOzB,QAAQC,OAAR,CAAgBc,iBAAhB,CAAP;AACH,aAFD,MAEO;AACH,qBAAKK,uBAAL;AACH;AACJ;;AAEDJ,2BAAmB,IAAIhB,OAAJ,CAAY,UAACC,OAAD,EAAUQ,MAAV,EAAqB;AAChD,gBAAI;AACAtB,sBAAM,uCAAN;;AAEAuC,0BAAUC,YAAV,CAAuBC,YAAvB,CAAoCP,WAApC,EACKb,IADL,CACU,UAACqB,MAAD,EAAY;AACdd,wCAAoBc,MAApB;AACAb,uCAAmB,IAAnB;AACAf,4BAAQ4B,MAAR;AACH,iBALL,EAMKC,KANL,CAMW,UAACC,GAAD,EAAS;AACZf,uCAAmB,IAAnB;AACAP,2BAAOsB,GAAP;AACH,iBATL;AAUH,aAbD,CAaE,OAAOjC,CAAP,EAAU;AACRkB,mCAAmB,IAAnB;AACAP,uBAAOX,CAAP;AACH;AACJ,SAlBkB,CAAnB;;AAoBA,eAAOkB,gBAAP;AACH,K;;mCAEDI,uB,sCAA0B;AACtBjC,cAAM,uBAAN;AACA,YAAI4B,iBAAJ,EAAuB;AACnBA,8BAAkBiB,SAAlB,GAA8BC,OAA9B,CAAsC,UAACC,KAAD,EAAW;AAC7CA,sBAAMC,IAAN;AACH,aAFD;AAGH;;AAEDpB,4BAAoB,IAApB;AACH,K;;mCAEDqB,gB,+BAAmC;AAAA,YAAlBC,SAAkB,uEAAN,IAAM;;AAC/B,YAAI,CAACtB,iBAAL,EAAwB;AACpB,mBAAOf,QAAQC,OAAR,EAAP;AACH;;AAED,YAAMqC,cAAcvB,kBAAkBwB,cAAlB,EAApB;AACA,YAAID,YAAYd,MAAZ,GAAqB,CAAzB,EAA4B;AACxBc,wBAAY,CAAZ,EAAeE,OAAf,GAAyBH,SAAzB;AACH;;AAED,eAAOrC,QAAQC,OAAR,EAAP;AACH,K;;AAED;;;;;;;;;;;mCASAwC,U,yBAAa;AACT,YAAK,OAAO5C,EAAP,KAAc,WAAf,IAA+BA,EAA/B,IAAqCA,GAAG4C,UAA5C,EAAwD;AACpD,mBAAO,IAAIzC,OAAJ,CAAY,UAACC,OAAD,EAAUQ,MAAV,EAAqB;AACpCZ,mBAAG4C,UAAH,CAAc,UAACC,KAAD,EAAQC,OAAR,EAAoB;AAC9B,wBAAID,KAAJ,EAAW;AACP,+BAAOjC,OAAOiC,KAAP,CAAP;AACH;;AAED,2BAAOzC,QAAQ0C,OAAR,CAAP;AACH,iBAND;AAOH,aARM,CAAP;AASH;;AAED,YAAIjB,UAAUC,YAAV,IAA0BD,UAAUC,YAAV,CAAuBiB,gBAArD,EAAuE;AACnE,mBAAOlB,UAAUC,YAAV,CAAuBiB,gBAAvB,EAAP;AACH;;AAED,eAAO5C,QAAQS,MAAR,CAAe,6BAAf,CAAP;AACH,K;;AAED;;;;;;;;;;;mCASAoC,kB,+BAAmBC,U,EAAY;AAC3B,eAAO,wCAA2BA,UAA3B,CAAP;AACH,K;;mCAEDC,4B,2CAA+B;AAC3B,YAAI,CAACvD,MAAL,EAAa;AACT,mBAAOQ,QAAQC,OAAR,CAAgB,IAAhB,CAAP;AACH;;AAED,YAAI,CAAC,CAACb,OAAO4D,aAAb,EAA4B;AACxB,mBAAOhD,QAAQC,OAAR,CAAgB,IAAhB,CAAP;AACH;;AAED,YAAIb,OAAOS,EAAP,IAAaT,OAAO6D,QAApB,IAAgC7D,OAAO6D,QAAP,CAAgBC,WAAhD,IAA+D9D,OAAO6D,QAAP,CAAgBC,WAAhB,EAAnE,EAAkG;AAC9F,mBAAOlD,QAAQC,OAAR,CAAgB,IAAhB,CAAP;AACH;;AAED,eAAOD,QAAQC,OAAR,CAAgB,KAAhB,CAAP;AACH,K;;AAED;;;;;;;;;;;;;;;;;;;;;mCAmBAkD,W,0BAUG;AAAA;;AAAA,uFAHa;AACZC,sBAAU,KADE;AAEZC,wBAAY;AAFA,SAGb;AAAA,YATaC,gBASb,QATaA,gBASb;AAAA,YARaF,QAQb,QARaA,QAQb;AAAA,YAPaC,UAOb,QAPaA,UAOb;AAAA,YANaE,WAMb,QANaA,WAMb;AAAA,YALaT,UAKb,QALaA,UAKb;AAAA,YAJaU,UAIb,QAJaA,UAIb;;AACC,eAAOxD,QAAQC,OAAR,GACFO,IADE,CACG,YAAM;AACR,gBAAI8C,qBAAqBG,+BAAoBC,WAA7C,EAA0D;AACtD;AACA;AACA;AACA,uBAAO1D,QAAQC,OAAR,GACFO,IADE,CACG,YAAM;AACR,wBAAMmD,iBAAiB;AACnBP,0CADmB;AAEnBC,8CAFmB;;AAInBE,qCAAaA,YAAYK,aAJN;AAKnBd,oCAAYA,cAAc,EAACe,OAAO,IAAR,EAAcC,OAAO,IAArB;AALP,qBAAvB;;AAQA,2BAAO,IAAIC,0BAAJ,CAAqBJ,cAArB,CAAP;AACH,iBAXE,CAAP;AAYH,aAhBD,MAgBO,IAAIL,qBAAqBG,+BAAoBO,UAAzC,IAAuDR,UAA3D,EAAuE;AAC1E;AACA;AACA;AACA,uBAAOxD,QAAQC,OAAR,GACFO,IADE,CACG,YAAM;AACR,wBAAIyD,QAAQ,IAAZ;;AAEA,wBAAI,CAACT,UAAL,EAAiB;AACbS,gCAASX,qBAAqBG,+BAAoBO,UAA1C,GAAwDT,YAAYW,UAApE,GAAiFX,YAAYY,OAArG;AACH;;AAED,wBAAMR,iBAAiB;AACnBP,0CADmB;AAEnBC,8CAFmB;AAGnBE,qCAAaU,KAHM;AAInBnB,oCAAYA,cAAc,EAACe,OAAO,IAAR,EAAcC,OAAO,IAArB;AAJP,qBAAvB;;AAOA,wBAAIN,UAAJ,EAAgB;AACZ,+BAAO,IAAIY,+BAAJ,CAA0BT,cAA1B,CAAP;AACH,qBAFD,MAEO,IAAIP,QAAJ,EAAc;AACjB,+BAAO,IAAIiB,2BAAJ,CAAsBV,cAAtB,EAAsC,OAAKzC,sBAA3C,CAAP;AACH,qBAFM,MAEA;AACH,+BAAO,OAAKoD,qBAAL,CAA2BX,cAA3B,EACFnD,IADE,CACG,UAAC+D,YAAD,EAAkB;AACpB,mCAAKC,0BAAL,CAAgCD,YAAhC;;AAEA,mCAAOA,YAAP;AACH,yBALE,CAAP;AAMH;AACJ,iBA3BE,CAAP;AA4BH;;AAED;AACA;AACA;AACA,mBAAOvE,QAAQC,OAAR,GACFO,IADE,CACG;AAAA,uBAAMT,YAAN;AAAA,aADH,EAEFS,IAFE,CAEG,YAAM;AACR,oBAAMmD,iBAAiB;AACnBP,sCADmB;AAEnBC,0CAFmB;;AAInBE,iCAAaA,YAAYY;AAJN,iBAAvB;;AAOA,uBAAO,IAAIM,0BAAJ,CAAqBd,cAArB,CAAP;AACH,aAXE,CAAP;AAYH,SAnEE,EAoEFnD,IApEE,CAoEG,UAACkE,OAAD,EAAa;AACf,mBAAKC,IAAL,CAAUjE,eAAeC,eAAzB,EAA0C+D,OAA1C;;AAEA5D,qBAAS8D,IAAT,CAAcF,OAAd;;AAEA,mBAAOA,OAAP;AACH,SA1EE,CAAP;AA2EH,K;;mCAEDJ,qB,kCAAsBX,c,EAAgB;AAAA;;AAClC,eAAO,iCAAoB;AACvBN,wBAAYM,eAAeN,UADJ;AAEvBP,wBAAYa,eAAeb;AAFJ,SAApB,EAGJtC,IAHI,CAGC,UAACa,WAAD,EAAiB;AACrB,gBAAMwD,aAAalB,eAAeP,QAAf,GAA0B0B,yBAAaC,SAAvC,GAAmDD,yBAAaE,KAAnF;;AAEA;AACA;AACA,gBAAIH,eAAeC,yBAAaE,KAAhC,EAAuC;AACnC,uBAAO3D,YAAYyC,KAAnB;AACH;;AAED,gBAAMmB,gBAAgB;AAClB5D,wCADkB;AAElBwD,sCAFkB;AAGlBtB,6BAAaI,eAAeJ,WAHV;AAIlB2B,+BAAe,OAAKhE;AAJF,aAAtB;;AAOA,mBAAO,IAAIiE,6BAAJ,CAAwBF,aAAxB,CAAP;AACH,SApBM,CAAP;AAqBH,K;;mCAEDT,0B,uCAA2BD,Y,EAAc;AAAA;;AACrC,YAAMa,oBAAoB,SAApBA,iBAAoB,GAAM;AAC5B,mBAAKhE,uBAAL;AACAmD,yBAAac,GAAb,CAAiBC,wBAAeC,YAAhC,EAA8CH,iBAA9C;AACH,SAHD;;AAKAb,qBAAaiB,EAAb,CAAgBF,wBAAeC,YAA/B,EAA6CH,iBAA7C;AACH,K;;;;4BAtQc;AACX,mBAAOtE,QAAP;AACH;;;;EAjB8B2E,0B;;AAwR5B,IAAMC,0CAAiB,IAAIzE,oBAAJ,EAAvB","file":"service.js","sourcesContent":["import {TsEnvironmentDetect} from '@techsee/techsee-common/lib/helpers/ts-environment-detect';\nimport {EventEmitter} from './event-emitter';\nimport {SESSION_EVENTS} from './session';\nimport {TsOpenTokSession} from './opentok/session';\nimport {KMSWebRTCSession, LoopbackWebRTCSession, TurnWebRTCSession, TurnWebRtcSessionV2} from './webrtc/session';\nimport {getHighestResolutionStream, getMediaConstraints} from './webrtc/helper';\n\nimport {\n MEDIA_SERVICE_TYPES,\n WAIT_FOR_OPENTOK_INITIALIZATION_INTERVAL,\n WAIT_FOR_OPENTOK_INITIALIZATION_MAX_ATTEMPTS\n} from './constants';\nimport {CLIENT_TYPES} from './webrtc/constants';\nimport {getTracer} from './tracer';\n\nconst trace = getTracer('WebRtcSessionTrace', () => window.WebRtcSessionTrace === true);\n\n\nconst environmentDetect = new TsEnvironmentDetect();\nconst isIE11 = environmentDetect.isIE11();\n\nif (isIE11) {\n require('./webrtc/webrtc-ie-shim.js');\n} else if (!(environmentDetect.isChrome() && (environmentDetect.majorVersion() < 49))) {\n require('webrtc-adapter/src/js/adapter_core'); // eslint-disable-line global-require\n}\n\nfunction _isOTDefined() {\n try {\n return !!OT;\n } catch (e) {\n return false;\n }\n}\n\nfunction _waitForOT() {\n if (_isOTDefined()) {\n return Promise.resolve();\n }\n\n let isDefined = false;\n\n return Promise.reduce(\n new Array(WAIT_FOR_OPENTOK_INITIALIZATION_MAX_ATTEMPTS),\n () => {\n if (isDefined || _isOTDefined()) {\n isDefined = true;\n\n return Promise.resolve();\n }\n\n return Promise.delay(WAIT_FOR_OPENTOK_INITIALIZATION_INTERVAL);\n }, 0)\n .then(() => isDefined || Promise.reject('OT is undefined'));\n}\n\n/**\n * @enum SERVICE_EVENTS\n */\nconst SERVICE_EVENTS = {\n SESSION_CREATED: 'SESSION_CREATED',\n EXCEPTION: 'EXCEPTION'\n};\n\nexport {SERVICE_EVENTS as EVENTS};\n\nconst sessions = [];\nlet latestLocalStream = null;\nlet userMediaPromise = null;\n\n/**\n * The top of hierarchy and the entry point of the TsMedia Service.\n *\n * @static\n * @class\n * @extends EventEmitter\n */\nclass TsMediaServiceFacade extends EventEmitter {\n constructor() {\n super();\n\n this.createLocalMediaStream = this.createLocalMediaStream.bind(this);\n this.destroyLocalMediaStream = this.destroyLocalMediaStream.bind(this);\n }\n\n /**\n * All created sessoins\n *\n * @member { Object }\n * @memberof TsMediaService\n * @type { Array<TsMediaSession> }\n */\n get sessions() {\n return sessions;\n }\n\n createLocalMediaStream(constraints) {\n trace('createLocalMediaStream');\n if (userMediaPromise) {\n return userMediaPromise;\n }\n\n if (latestLocalStream) {\n const videoTrack = latestLocalStream.getVideoTracks();\n if (videoTrack.length > 0 && videoTrack[0].readyState === 'live') {\n return Promise.resolve(latestLocalStream);\n } else {\n this.destroyLocalMediaStream();\n }\n }\n\n userMediaPromise = new Promise((resolve, reject) => {\n try {\n trace('createLocalMediaStream inside promise');\n\n navigator.mediaDevices.getUserMedia(constraints)\n .then((stream) => {\n latestLocalStream = stream;\n userMediaPromise = null;\n resolve(stream);\n })\n .catch((err) => {\n userMediaPromise = null;\n reject(err);\n });\n } catch (e) {\n userMediaPromise = null;\n reject(e);\n }\n });\n\n return userMediaPromise;\n }\n\n destroyLocalMediaStream() {\n trace('Destroy local streams');\n if (latestLocalStream) {\n latestLocalStream.getTracks().forEach((track) => {\n track.stop();\n });\n }\n\n latestLocalStream = null;\n }\n\n toggleMicrophone(enableMic = true) {\n if (!latestLocalStream) {\n return Promise.resolve();\n }\n\n const audioTracks = latestLocalStream.getAudioTracks();\n if (audioTracks.length > 0) {\n audioTracks[0].enabled = enableMic;\n }\n\n return Promise.resolve();\n }\n\n /**\n * Enumerate available media devices\n *\n * @method\n * @memberof TsMediaService\n * @returns { Promise<Array<MediaDeviceInfo>> } devices list\n *\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/MediaDeviceInfo | MediaDeviceInfo documentation}\n */\n getDevices() {\n if ((typeof OT !== 'undefined') && OT && OT.getDevices) {\n return new Promise((resolve, reject) => {\n OT.getDevices((error, devices) => {\n if (error) {\n return reject(error);\n }\n\n return resolve(devices);\n });\n });\n }\n\n if (navigator.mediaDevices && navigator.mediaDevices.enumerateDevices) {\n return navigator.mediaDevices.enumerateDevices();\n }\n\n return Promise.reject('getDevices is not supported');\n }\n\n /**\n * Verifies camera access\n *\n * @method\n * @memberof TsMediaService\n * @returns { Promise<Object> } returns {stream,constraints} if successful, or rejected promise if failed\n *\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/MediaDeviceInfo | MediaDeviceInfo documentation}\n */\n verifyCameraAccess(deviceOpts) {\n return getHighestResolutionStream(deviceOpts);\n }\n\n isVideoPlaySupportedOnDevice() {\n if (!isIE11) {\n return Promise.resolve(true);\n }\n\n if (!!window.WebRTCAdapter) {\n return Promise.resolve(true);\n }\n\n if (window.OT && window.OTPlugin && window.OTPlugin.isInstalled && window.OTPlugin.isInstalled()) {\n return Promise.resolve(true);\n }\n\n return Promise.resolve(false);\n }\n\n /**\n * Init WebRTC or OpenTok session depends on required type.\n *\n * Returns an initialized specific implementation of TsMediaSession interface.\n *\n * Assuming mobile will be a publisher and not mobile will be a subscriber.\n *\n * @method\n * @memberof TsMediaService\n *\n * @param { OPENTOK|MEDIASERVER|TURNSERVER } mediaServiceType required implementation\n * @param { Boolean } isMobile Whether techsee-mobile or not calls this method.\n * @param { Object } resolution constraint to use for video stream\n * @param { opentok|tsMediaServer|turnServer } credentials server/service credentials\n * @param { Object } deviceOpts requested devices (mainly audio/video device ids)\n * @param { Boolean } isLoopback Whether to use loopback webrtc\n *\n * @returns { Promise<TsMediaSession> }\n */\n initSession({\n mediaServiceType,\n isMobile,\n resolution,\n credentials,\n deviceOpts,\n isLoopback\n } = {\n isMobile: false,\n resolution: '640x480'\n }) {\n return Promise.resolve()\n .then(() => {\n if (mediaServiceType === MEDIA_SERVICE_TYPES.MEDIASERVER) {\n //\n // KMS CONNECTION\n //\n return Promise.resolve()\n .then(() => {\n const sessionOptions = {\n isMobile,\n resolution,\n\n credentials: credentials.tsMediaServer,\n deviceOpts: deviceOpts || {audio: true, video: true}\n };\n\n return new KMSWebRTCSession(sessionOptions);\n });\n } else if (mediaServiceType === MEDIA_SERVICE_TYPES.TURNSERVER || isLoopback) {\n //\n // TURN-based connection or loopback (no connection)\n //\n return Promise.resolve()\n .then(() => {\n let creds = null;\n\n if (!isLoopback) {\n creds = (mediaServiceType === MEDIA_SERVICE_TYPES.TURNSERVER) ? credentials.turnServer : credentials.opentok;\n }\n\n const sessionOptions = {\n isMobile,\n resolution,\n credentials: creds,\n deviceOpts: deviceOpts || {audio: true, video: true}\n };\n\n if (isLoopback) {\n return new LoopbackWebRTCSession(sessionOptions);\n } else if (isMobile) {\n return new TurnWebRTCSession(sessionOptions, this.createLocalMediaStream);\n } else {\n return this.getTurnMediaSessionV2(sessionOptions)\n .then((mediaSession) => {\n this.subscribeTurnSessionEvents(mediaSession);\n\n return mediaSession;\n });\n }\n });\n }\n\n //\n // OT CONNECTION (default mediaServiceType)\n //\n return Promise.resolve()\n .then(() => _waitForOT())\n .then(() => {\n const sessionOptions = {\n isMobile,\n resolution,\n\n credentials: credentials.opentok\n };\n\n return new TsOpenTokSession(sessionOptions);\n });\n })\n .then((session) => {\n this.emit(SERVICE_EVENTS.SESSION_CREATED, session);\n\n sessions.push(session);\n\n return session;\n });\n }\n\n getTurnMediaSessionV2(sessionOptions) {\n return getMediaConstraints({\n resolution: sessionOptions.resolution,\n deviceOpts: sessionOptions.deviceOpts\n }).then((constraints) => {\n const clientType = sessionOptions.isMobile ? CLIENT_TYPES.INITIATOR : CLIENT_TYPES.GUEST;\n\n // streaming from dashboard is not supported and we\n // don't want to access the camera without a reason\n if (clientType === CLIENT_TYPES.GUEST) {\n delete constraints.video;\n }\n\n const sessionParams = {\n constraints,\n clientType,\n credentials: sessionOptions.credentials,\n streamFactory: this.createLocalMediaStream\n };\n\n return new TurnWebRtcSessionV2(sessionParams);\n });\n }\n\n subscribeTurnSessionEvents(mediaSession) {\n const disconnectHandler = () => {\n this.destroyLocalMediaStream();\n mediaSession.off(SESSION_EVENTS.DISCONNECTED, disconnectHandler);\n };\n\n mediaSession.on(SESSION_EVENTS.DISCONNECTED, disconnectHandler);\n }\n}\n\nexport const TsMediaService = new TsMediaServiceFacade();\n"]}
|
package/lib/session.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["session.js"],"names":["SESSION_EVENTS","CONNECTED","DISCONNECTED","EXCEPTION","STREAM_CREATED","STREAM_DESTROYED","STREAM_PROPERTY_CHANGED","RECONNECT_TURN_SERVER","TURN_SERVER_CONNECTION_FAILED","PEER_CONNECTED","PEER_DISCONNECTED","EVENTS","TsMediaSession","_streams","Map","on","event","stream","emit","STREAM_EVENTS","PROPERTY_CHANGED","registerStream","id","set","unregisterStream","delete","streamArray","forEach","push","EventEmitter"],"mappings":";;;;;;;AAAA;;AAEA;;;;;;;;AAEA;;;AAGO,IAAMA,0CAAiB;AAC1BC,eAAW,WADe;AAE1BC,kBAAc,cAFY;AAG1BC,eAAW,WAHe;AAI1BC,oBAAgB,gBAJU;AAK1BC,sBAAkB,kBALQ;AAM1BC,6BAAyB,yBANC;AAO1BC,2BAAuB,uBAPG;AAQ1BC,mCAA+B,+BARL;AAS1BC,oBAAgB,gBATU;AAU1BC,uBAAmB;AAVO,CAAvB;;QAamBC,M,GAAlBX,c;;AAER;;;;;;;;;;;;;;;;IAeaY,c,WAAAA,c;;;AACT,8BAAc;AAAA;;AAAA,qDACV,wBADU;;AAGV,cAAKC,QAAL,GAAgB,IAAIC,GAAJ,EAAhB;;AAEA,cAAKC,EAAL,CAAQf,eAAeM,uBAAvB,EAAgD,UAACU,KAAD,EAAW;AACvD,gBAAIA,MAAMC,MAAV,EAAkB;AACdD,sBAAMC,MAAN,CAAaC,IAAb,CAAkBC,eAAcC,gBAAhC,EAAkDJ,KAAlD;AACH;AACJ,SAJD;AALU;AAUb;;AAED;;;;;;;;AAcA;;;;;;;;;6BASAK,c,2BAAeC,E,EAAIL,M,EAAQ;AACvB,aAAKJ,QAAL,CAAcU,GAAd,CAAkBD,EAAlB,EAAsBL,MAAtB;AACH,K;;6BAEDO,gB,6BAAiBF,E,EAAI;AACjB,aAAKT,QAAL,CAAcY,MAAd,CAAqBH,EAArB;AACH,K;;;;4BAvBa;AACV,gBAAMI,cAAc,EAApB;;AAEA,iBAAKb,QAAL,CAAcc,OAAd,CAAsB,UAACV,MAAD;AAAA,uBAAYS,YAAYE,IAAZ,CAAiBX,MAAjB,CAAZ;AAAA,aAAtB;;AAEA,mBAAOS,WAAP;AACH;;;;EAzB+BG,0B","file":"session.js","sourcesContent":["import {EventEmitter} from './event-emitter';\n\nimport {EVENTS as STREAM_EVENTS} from './stream';\n\n/**\n * @enum SESSION_EVENTS\n */\nexport const SESSION_EVENTS = {\n CONNECTED: 'CONNECTED',\n DISCONNECTED: 'DISCONNECTED',\n EXCEPTION: 'EXCEPTION',\n STREAM_CREATED: 'STREAM_CREATED',\n STREAM_DESTROYED: 'STREAM_DESTROYED',\n STREAM_PROPERTY_CHANGED: 'STREAM_PROPERTY_CHANGED',\n RECONNECT_TURN_SERVER: 'RECONNECT_TURN_SERVER',\n TURN_SERVER_CONNECTION_FAILED: 'TURN_SERVER_CONNECTION_FAILED',\n PEER_CONNECTED: 'PEER_CONNECTED',\n PEER_DISCONNECTED: 'PEER_DISCONNECTED'\n};\n\nexport {SESSION_EVENTS as EVENTS};\n\n/**\n * Session object returned by TsMediaSercice.initSession() call.\n * <br>\n * Represents connection to OpenTok server or TsMediaServer.\n * <br>\n * General interface for the specific implementations - TsOpenTokSession and TsWebRTCSession\n *\n * @interface\n * @extends EventEmitter\n *\n * @fires SESSION_EVENTS#CONNECTED\n * @fires SESSION_EVENTS#DISCONNECTED\n * @fires SESSION_EVENTS#EXCEPTION\n * @fires SESSION_EVENTS#STREAM_CREATED\n */\nexport class TsMediaSession extends EventEmitter {\n constructor() {\n super();\n\n this._streams = new Map();\n\n this.on(SESSION_EVENTS.STREAM_PROPERTY_CHANGED, (event) => {\n if (event.stream) {\n event.stream.emit(STREAM_EVENTS.PROPERTY_CHANGED, event);\n }\n });\n }\n\n /**\n * All media streams registered in the session.\n *\n * @member { Object }\n * @type { Array<TsMediaStream> }\n */\n get streams() {\n const streamArray = [];\n\n this._streams.forEach((stream) => streamArray.push(stream));\n\n return streamArray;\n }\n\n /**\n * Register new media stream in the session.\n *\n * Called internally by TsMediaStream constructor.\n *\n * @method\n * @param { String } id Stream id\n * @param { TsMediaStream } stream Media Stream\n */\n registerStream(id, stream) {\n this._streams.set(id, stream);\n }\n\n unregisterStream(id) {\n this._streams.delete(id);\n }\n}\n\n"]}
|
package/lib/stream.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["stream.js"],"names":["STREAM_EVENTS","PROPERTY_CHANGED","EVENTS","TsMediaStream","id","session","isRemote","videoTrackSettings","registerStream","remote","_width","width","_height","height","_environment","TsEnvironmentDetect","_updateVideoDimensions","videoEl","videoWidth","videoHeight","stream","property","value","videoDimensions","_session","emit","SESSION_EVENTS","STREAM_PROPERTY_CHANGED","setupDimensionsListener","subscriber","_clearUpdateDimensionsInterval","isIE11","isIOS","$","on","intervalId","setInterval","hasVideo","SUBSCRIBER_EVENTS","DESTROYED","clearInterval","getSnapshot","tsMediaElement","timeout","format","quality","x","y","w","h","TypeError","turnFlashlight","isTorchOn","setAutoLightOffTimer","flashlightTimeout","EventEmitter"],"mappings":"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","file":"stream.js","sourcesContent":["import {EventEmitter} from './event-emitter';\n\nimport {\n EVENTS as SESSION_EVENTS\n} from './session';\n\nimport {\n EVENTS as SUBSCRIBER_EVENTS\n} from './subscriber';\n\nimport {TsEnvironmentDetect} from '@techsee/techsee-common/lib/helpers/ts-environment-detect';\n\n/**\n * @enum STREAM_EVENTS\n */\nconst STREAM_EVENTS = {\n PROPERTY_CHANGED: 'PROPERTY_CHANGED'\n};\n\nexport {STREAM_EVENTS as EVENTS};\n\n/**\n * Media stream wrapper.\n *\n * Represents video or audio stream, local or remote.\n *\n * General interface for the specific implementations - TsOpenTokStream or TsWebRTCStream\n *\n * @interface\n *\n * @see TsOpenTokStream\n * @see TsWebRTCStream\n */\nexport class TsMediaStream extends EventEmitter {\n constructor(id, session, isRemote = true, videoTrackSettings) {\n super();\n\n session.registerStream(id, this);\n this.remote = isRemote;\n\n if (videoTrackSettings) {\n this._width = videoTrackSettings.width;\n this._height = videoTrackSettings.height;\n }\n\n /**\n * Environment detector\n *\n * @protected\n * @member { Object }\n */\n this._environment = new TsEnvironmentDetect();\n }\n\n /**\n * Stream video dimensions\n *\n * @member { Object }\n * @type { Object }\n */\n get videoDimensions() {\n // FIXME the fallback dimensions should be removed, and the Opentok/Webrtc implementations\n // should pass the dimensions just like loopback does. I suspect current behavior is\n // the cause of the video element \"jumping\" (change size) on initial connection\n return {width: this._width || 480, height: this._height || 640};\n }\n\n _updateVideoDimensions(videoEl) {\n if (videoEl) {\n this._width = videoEl.videoWidth;\n this._height = videoEl.videoHeight;\n\n const stream = this;\n const property = 'videoDimensions';\n const value = this.videoDimensions;\n\n this._session.emit(SESSION_EVENTS.STREAM_PROPERTY_CHANGED, {stream, property, value});\n }\n }\n\n setupDimensionsListener(videoEl, subscriber) {\n this._clearUpdateDimensionsInterval();\n\n this._width = videoEl.videoWidth;\n this._height = videoEl.videoHeight;\n\n if (!subscriber && !this._environment.isIE11() && !this._environment.isIOS()) {\n $(videoEl).on('resize', () => this._updateVideoDimensions(videoEl));\n } else {\n this.intervalId = setInterval(() => {\n if (subscriber && !(subscriber.stream && subscriber.stream.hasVideo)) {\n return;\n }\n\n if (this._width !== videoEl.videoWidth || this._height !== videoEl.videoHeight) {\n this._updateVideoDimensions(videoEl);\n }\n }, 500);\n }\n\n if (subscriber && this.intervalId) {\n subscriber.on(SUBSCRIBER_EVENTS.DESTROYED, () => {\n this._clearUpdateDimensionsInterval();\n });\n }\n }\n\n _clearUpdateDimensionsInterval() {\n if (this.intervalId) {\n clearInterval(this.intervalId);\n\n this.intervalId = null;\n }\n }\n\n /* eslint-disable no-unused-vars */\n /**\n * Get snapshot of the current frame in the media stream\n *\n * Used internally in (TsMediaPublisher | TsMediaSubscriber).getSnapshot\n *\n * @method\n * @param { TsMediaPublisher | TsMediaSubscriber } tsMediaElement\n * @param { Number } timeout Usually used in IE. Time between video element transformation and snapshot.\n * @param { Object } options\n * format: Output MIME type (image/png or image/jpeg; default: image/png).\n * quality: Output quality (between 0 and 1; default: 0.92; applies only when the format is image/jpeg).\n * x: The x coordinate of the crop starting position.\n * y: The y coordinate of the crop starting position.\n * w: Crop width.\n * h: Crop Height.\n *\n * @returns { Promise<String> } snapshot\n */\n getSnapshot(tsMediaElement, timeout = 0, {format = 'image/png', quality = 0.92, x, y, w, h} = {}) {\n throw new TypeError('The method \\'getSnapshot\\' is not implemented');\n }\n\n turnFlashlight(isTorchOn = true) {\n throw new TypeError('The method \\'turnFlashlight\\' is not implemented');\n }\n\n setAutoLightOffTimer(flashlightTimeout) {\n throw new TypeError('The method \\'setAutoLightOffTimer\\' is not implemented');\n }\n\n /* eslint-enable no-unused-vars */\n}\n\n"]}
|
package/lib/subscriber.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["subscriber.js"],"names":["SUBSCRIBER_EVENTS","DESTROYED","DISCONNECTED","EVENTS","TsMediaSubscriber","data","_","assign","destroy","stream","destroySubscriber","getSnapshot","timeout","options","getStats","EventEmitter"],"mappings":";;;;;AAAA;;;;;;;;AAEA;;;AAGA,IAAMA,oBAAoB;AACtBC,eAAW,WADW;AAEtBC,kBAAc;AAFQ,CAA1B;;QAK8BC,M,GAArBH,iB;;AAET;;;;;;;;;;;;IAWaI,iB,WAAAA,iB;;;AACT,+BAAYC,IAAZ,EAAkB;AAAA;;AAAA,qDACd,wBADc;;AAGdC,UAAEC,MAAF,QAAeF,IAAf;AAHc;AAIjB;;AAED;;;;;;;gCAKAG,O,sBAAU;AACN,eAAO,KAAKC,MAAL,CAAYC,iBAAZ,CAA8B,IAA9B,CAAP;AACH,K;;AAED;;;;;;;;;;;;;gCAWAC,W,wBAAYC,O,EAASC,O,EAAS;AAC1B,eAAO,KAAKJ,MAAL,CAAYE,WAAZ,CAAwB,IAAxB,EAA8BC,OAA9B,EAAuCC,OAAvC,CAAP;AACH,K;;AAED;;;;;;;;gCAMAC,Q,uBAAW;AACP,eAAO,KAAKL,MAAL,CAAYK,QAAZ,CAAqB,IAArB,CAAP;AACH,K;;;EAvCkCC,0B","file":"subscriber.js","sourcesContent":["import { EventEmitter } from './event-emitter';\n\n/**\n * @enum SUBSCRIBER_EVENTS\n */\nconst SUBSCRIBER_EVENTS = {\n DESTROYED: 'DESTROYED',\n DISCONNECTED: 'DISCONNECTED',\n};\n\nexport { SUBSCRIBER_EVENTS as EVENTS };\n\n/**\n * Subscriber object represents subscription to a media stream.\n *\n * Exposes session and stream wrapper methods specific for media subscription.\n *\n * Instance is returned by TsMediaStream.subscribe() call\n *\n * @class\n *\n * @see TsMediaStream\n */\nexport class TsMediaSubscriber extends EventEmitter {\n constructor(data) {\n super();\n\n _.assign(this, data);\n }\n\n /**\n * Unsubscribe from the media stream and destroy subscriber's view\n *\n * @method\n */\n destroy() {\n return this.stream.destroySubscriber(this);\n }\n\n /**\n * Get snapshot of the current frame in the media stream\n *\n * @method\n * @param { Number } timeout Usually used in IE.\n * Time between video element transformation and snapshot.\n *\n * @param { Object } options Snapshot options: format, quality and crop positions\n *\n * @returns { Promise<String> } snapshot\n */\n getSnapshot(timeout, options) {\n return this.stream.getSnapshot(this, timeout, options);\n }\n\n /**\n * Get statistics of the media subscription like bytes received.\n *\n * @method\n * @returns { Promise<ToBeDefined> } stats\n */\n getStats() {\n return this.stream.getStats(this);\n }\n}\n\n"]}
|
package/lib/tracer.js
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
exports.__esModule = true;
|
|
4
|
-
exports.getTracer = getTracer;
|
|
5
|
-
function getTracer(prefix, isEnabledFn) {
|
|
6
|
-
var trace = function trace(message) {
|
|
7
|
-
var _console;
|
|
8
|
-
|
|
9
|
-
if (typeof isEnabledFn !== 'function' || !isEnabledFn()) {
|
|
10
|
-
return;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
for (var _len = arguments.length, rest = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
|
14
|
-
rest[_key - 1] = arguments[_key];
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
(_console = console).log.apply(_console, [prefix + ':' + message].concat(rest));
|
|
18
|
-
};
|
|
19
|
-
|
|
20
|
-
return trace;
|
|
21
|
-
}
|
|
22
|
-
//# sourceMappingURL=tracer.js.map
|
package/lib/tracer.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["tracer.js"],"names":["getTracer","prefix","isEnabledFn","trace","message","rest","log"],"mappings":";;;QAAgBA,S,GAAAA,S;AAAT,SAASA,SAAT,CAAmBC,MAAnB,EAA2BC,WAA3B,EAAwC;AAC3C,QAAMC,QAAQ,SAARA,KAAQ,CAAUC,OAAV,EAA4B;AAAA;;AACtC,YAAI,OAAOF,WAAP,KAAuB,UAAvB,IAAqC,CAACA,aAA1C,EAAyD;AACrD;AACH;;AAHqC,0CAANG,IAAM;AAANA,gBAAM;AAAA;;AAKtC,6BAAQC,GAAR,kBAAYL,SAAS,GAAT,GAAeG,OAA3B,SAAuCC,IAAvC;AACH,KAND;;AAQA,WAAOF,KAAP;AACH","file":"tracer.js","sourcesContent":["export function getTracer(prefix, isEnabledFn) {\n const trace = function (message, ...rest) {\n if (typeof isEnabledFn !== 'function' || !isEnabledFn()) {\n return;\n }\n\n console.log(prefix + ':' + message, ...rest);\n };\n\n return trace;\n}\n"]}
|
package/lib/v2/Contracts.d.ts
DELETED
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
export declare type VideoStreamParams = {
|
|
2
|
-
resolution: string;
|
|
3
|
-
};
|
|
4
|
-
export declare type DeviceMediaOptions = {
|
|
5
|
-
loopBackVideo?: VideoStreamParams;
|
|
6
|
-
cameraVideo?: VideoStreamParams;
|
|
7
|
-
desktopStream?: VideoStreamParams;
|
|
8
|
-
};
|
|
9
|
-
export declare type MediaServiceOptions = {
|
|
10
|
-
deviceMediaOptions: DeviceMediaOptions;
|
|
11
|
-
};
|
|
12
|
-
export declare type MediaSessionParams = {
|
|
13
|
-
sessionId: string;
|
|
14
|
-
sessionType: MediaSessionType;
|
|
15
|
-
clientType: SessionClientType;
|
|
16
|
-
clientRole: SessionClientRole;
|
|
17
|
-
credentials: any;
|
|
18
|
-
};
|
|
19
|
-
export declare type MediaSubscriberParams = {
|
|
20
|
-
container: HTMLDivElement;
|
|
21
|
-
streamType: KnownMediaStream;
|
|
22
|
-
};
|
|
23
|
-
export declare enum MediaSessionType {
|
|
24
|
-
OPENTOK = "OPENTOK",
|
|
25
|
-
TURNSERVER = "TURNSERVER"
|
|
26
|
-
}
|
|
27
|
-
export declare enum SessionClientRole {
|
|
28
|
-
AGENT = "AGENT",
|
|
29
|
-
OBSERVER = "OBSERVER",
|
|
30
|
-
USER = "USER"
|
|
31
|
-
}
|
|
32
|
-
export declare enum SessionClientType {
|
|
33
|
-
INITIATOR = "publisher",
|
|
34
|
-
GUEST = "subscriber"
|
|
35
|
-
}
|
|
36
|
-
export declare enum KnownMediaStream {
|
|
37
|
-
AGENT_AUDIO_STREAM = "AGENT_AUDIO_STREAM",
|
|
38
|
-
USER_AUDIO_STREAM = "USER_AUDIO_STREAM",
|
|
39
|
-
USER_VIDEO_STREAM = "USER_VIDEO_STREAM",
|
|
40
|
-
USER_SCREEN_SHARE_STREAM = "USER_SCREEN_SHARE_STREAM"
|
|
41
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/v2/Contracts.ts"],"names":[],"mappings":"AAAA,oBAAY,iBAAiB,GAAG;IAC5B,UAAU,EAAE,MAAM,CAAA;CACrB,CAAA;AAED,oBAAY,kBAAkB,GAAG;IAC7B,aAAa,CAAC,EAAE,iBAAiB,CAAC;IAClC,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC,aAAa,CAAC,EAAE,iBAAiB,CAAA;CACpC,CAAA;AAED,oBAAY,mBAAmB,GAAG;IAC9B,kBAAkB,EAAE,kBAAkB,CAAA;CACzC,CAAA;AAED,oBAAY,kBAAkB,GAAG;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,gBAAgB,CAAC;IAC9B,UAAU,EAAE,iBAAiB,CAAC;IAC9B,UAAU,EAAE,iBAAiB,CAAC;IAC9B,WAAW,EAAE,GAAG,CAAC;CACpB,CAAA;AAED,oBAAY,qBAAqB,GAAG;IAChC,SAAS,EAAE,cAAc,CAAC;IAC1B,UAAU,EAAE,gBAAgB,CAAA;CAC/B,CAAA;AAED,oBAAY,gBAAgB;IACxB,OAAO,YAAY;IACnB,UAAU,eAAe;CAC5B;AAED,oBAAY,iBAAiB;IACzB,KAAK,UAAU;IACf,QAAQ,aAAa;IACrB,IAAI,SAAS;CAChB;AAED,oBAAY,iBAAiB;IACzB,SAAS,cAAc;IACvB,KAAK,eAAe;CACvB;AAED,oBAAY,gBAAgB;IACxB,kBAAkB,uBAAuB;IACzC,iBAAiB,sBAAsB;IACvC,iBAAiB,sBAAsB;IACvC,wBAAwB,6BAA6B;CACxD","file":"Contracts.d.ts","sourcesContent":["export type VideoStreamParams = {\n resolution: string\n}\n\nexport type DeviceMediaOptions = {\n loopBackVideo?: VideoStreamParams,\n cameraVideo?: VideoStreamParams,\n desktopStream?: VideoStreamParams\n}\n\nexport type MediaServiceOptions = {\n deviceMediaOptions: DeviceMediaOptions\n}\n\nexport type MediaSessionParams = {\n sessionId: string,\n sessionType: MediaSessionType,\n clientType: SessionClientType,\n clientRole: SessionClientRole,\n credentials: any, //TODO - Define type for credentials\n}\n\nexport type MediaSubscriberParams = {\n container: HTMLDivElement,\n streamType: KnownMediaStream\n}\n\nexport enum MediaSessionType {\n OPENTOK = 'OPENTOK',\n TURNSERVER = 'TURNSERVER'\n}\n\nexport enum SessionClientRole {\n AGENT = 'AGENT',\n OBSERVER = 'OBSERVER',\n USER = 'USER'\n};\n\nexport enum SessionClientType {\n INITIATOR = 'publisher',\n GUEST = 'subscriber'\n};\n\nexport enum KnownMediaStream {\n AGENT_AUDIO_STREAM = 'AGENT_AUDIO_STREAM',\n USER_AUDIO_STREAM = 'USER_AUDIO_STREAM',\n USER_VIDEO_STREAM = 'USER_VIDEO_STREAM',\n USER_SCREEN_SHARE_STREAM = 'USER_SCREEN_SHARE_STREAM'\n}\n"]}
|
package/lib/v2/Contracts.js
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
var MediaSessionType;
|
|
5
|
-
(function (MediaSessionType) {
|
|
6
|
-
MediaSessionType["OPENTOK"] = "OPENTOK";
|
|
7
|
-
MediaSessionType["TURNSERVER"] = "TURNSERVER";
|
|
8
|
-
})(MediaSessionType = exports.MediaSessionType || (exports.MediaSessionType = {}));
|
|
9
|
-
var SessionClientRole;
|
|
10
|
-
(function (SessionClientRole) {
|
|
11
|
-
SessionClientRole["AGENT"] = "AGENT";
|
|
12
|
-
SessionClientRole["OBSERVER"] = "OBSERVER";
|
|
13
|
-
SessionClientRole["USER"] = "USER";
|
|
14
|
-
})(SessionClientRole = exports.SessionClientRole || (exports.SessionClientRole = {}));
|
|
15
|
-
;
|
|
16
|
-
var SessionClientType;
|
|
17
|
-
(function (SessionClientType) {
|
|
18
|
-
SessionClientType["INITIATOR"] = "publisher";
|
|
19
|
-
SessionClientType["GUEST"] = "subscriber";
|
|
20
|
-
})(SessionClientType = exports.SessionClientType || (exports.SessionClientType = {}));
|
|
21
|
-
;
|
|
22
|
-
var KnownMediaStream;
|
|
23
|
-
(function (KnownMediaStream) {
|
|
24
|
-
KnownMediaStream["AGENT_AUDIO_STREAM"] = "AGENT_AUDIO_STREAM";
|
|
25
|
-
KnownMediaStream["USER_AUDIO_STREAM"] = "USER_AUDIO_STREAM";
|
|
26
|
-
KnownMediaStream["USER_VIDEO_STREAM"] = "USER_VIDEO_STREAM";
|
|
27
|
-
KnownMediaStream["USER_SCREEN_SHARE_STREAM"] = "USER_SCREEN_SHARE_STREAM";
|
|
28
|
-
})(KnownMediaStream = exports.KnownMediaStream || (exports.KnownMediaStream = {}));
|
|
29
|
-
|
|
30
|
-
//# sourceMappingURL=Contracts.js.map
|
|
31
|
-
//# sourceMappingURL=Contracts.js.map
|
package/lib/v2/Contracts.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["v2/Contracts.js"],"names":["Object","defineProperty","exports","value","MediaSessionType","SessionClientRole","SessionClientType","KnownMediaStream"],"mappings":"AAAA;;AACAA,OAAOC,cAAP,CAAsBC,OAAtB,EAA+B,YAA/B,EAA6C,EAAEC,OAAO,IAAT,EAA7C;AACA,IAAIC,gBAAJ;AACA,CAAC,UAAUA,gBAAV,EAA4B;AACzBA,qBAAiB,SAAjB,IAA8B,SAA9B;AACAA,qBAAiB,YAAjB,IAAiC,YAAjC;AACH,CAHD,EAGGA,mBAAmBF,QAAQE,gBAAR,KAA6BF,QAAQE,gBAAR,GAA2B,EAAxD,CAHtB;AAIA,IAAIC,iBAAJ;AACA,CAAC,UAAUA,iBAAV,EAA6B;AAC1BA,sBAAkB,OAAlB,IAA6B,OAA7B;AACAA,sBAAkB,UAAlB,IAAgC,UAAhC;AACAA,sBAAkB,MAAlB,IAA4B,MAA5B;AACH,CAJD,EAIGA,oBAAoBH,QAAQG,iBAAR,KAA8BH,QAAQG,iBAAR,GAA4B,EAA1D,CAJvB;AAKA;AACA,IAAIC,iBAAJ;AACA,CAAC,UAAUA,iBAAV,EAA6B;AAC1BA,sBAAkB,WAAlB,IAAiC,WAAjC;AACAA,sBAAkB,OAAlB,IAA6B,YAA7B;AACH,CAHD,EAGGA,oBAAoBJ,QAAQI,iBAAR,KAA8BJ,QAAQI,iBAAR,GAA4B,EAA1D,CAHvB;AAIA;AACA,IAAIC,gBAAJ;AACA,CAAC,UAAUA,gBAAV,EAA4B;AACzBA,qBAAiB,oBAAjB,IAAyC,oBAAzC;AACAA,qBAAiB,mBAAjB,IAAwC,mBAAxC;AACAA,qBAAiB,mBAAjB,IAAwC,mBAAxC;AACAA,qBAAiB,0BAAjB,IAA+C,0BAA/C;AACH,CALD,EAKGA,mBAAmBL,QAAQK,gBAAR,KAA6BL,QAAQK,gBAAR,GAA2B,EAAxD,CALtB;;AAOA","file":"Contracts.js","sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar MediaSessionType;\n(function (MediaSessionType) {\n MediaSessionType[\"OPENTOK\"] = \"OPENTOK\";\n MediaSessionType[\"TURNSERVER\"] = \"TURNSERVER\";\n})(MediaSessionType = exports.MediaSessionType || (exports.MediaSessionType = {}));\nvar SessionClientRole;\n(function (SessionClientRole) {\n SessionClientRole[\"AGENT\"] = \"AGENT\";\n SessionClientRole[\"OBSERVER\"] = \"OBSERVER\";\n SessionClientRole[\"USER\"] = \"USER\";\n})(SessionClientRole = exports.SessionClientRole || (exports.SessionClientRole = {}));\n;\nvar SessionClientType;\n(function (SessionClientType) {\n SessionClientType[\"INITIATOR\"] = \"publisher\";\n SessionClientType[\"GUEST\"] = \"subscriber\";\n})(SessionClientType = exports.SessionClientType || (exports.SessionClientType = {}));\n;\nvar KnownMediaStream;\n(function (KnownMediaStream) {\n KnownMediaStream[\"AGENT_AUDIO_STREAM\"] = \"AGENT_AUDIO_STREAM\";\n KnownMediaStream[\"USER_AUDIO_STREAM\"] = \"USER_AUDIO_STREAM\";\n KnownMediaStream[\"USER_VIDEO_STREAM\"] = \"USER_VIDEO_STREAM\";\n KnownMediaStream[\"USER_SCREEN_SHARE_STREAM\"] = \"USER_SCREEN_SHARE_STREAM\";\n})(KnownMediaStream = exports.KnownMediaStream || (exports.KnownMediaStream = {}));\n\n//# sourceMappingURL=Contracts.js.map\n"]}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
export declare class LocalStreamManager {
|
|
2
|
-
private environment;
|
|
3
|
-
constructor(environment: any);
|
|
4
|
-
getUserMediaStream(constraints: any): Promise<MediaStream>;
|
|
5
|
-
getDesktopMediaStream(constraints: any): Promise<MediaStream>;
|
|
6
|
-
destroyUserMediaStream(): void;
|
|
7
|
-
destroyDesktopMediaStream(): void;
|
|
8
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/v2/LocalStreamManager.ts"],"names":[],"mappings":"AAQA,qBAAa,kBAAkB;IAC3B,OAAO,CAAC,WAAW,CAAM;gBAEb,WAAW,EAAE,GAAG;IAI5B,kBAAkB,CAAC,WAAW,EAAE,GAAG;IAmCnC,qBAAqB,CAAC,WAAW,EAAE,GAAG;IAqCtC,sBAAsB;IAWtB,yBAAyB;CAU5B","file":"LocalStreamManager.d.ts","sourcesContent":["import {Nullable} from '@techsee/techsee-common';\n\nlet latestUserMediaStream: Nullable<MediaStream> = null;\nlet userMediaPromise: Nullable<Promise<MediaStream>> = null;\n\nlet latestDesktopMediaStream: Nullable<MediaStream> = null;\nlet desktopMediaPromise: Nullable<Promise<MediaStream>> = null;\n\nexport class LocalStreamManager {\n private environment: any;\n\n constructor(environment: any) {\n this.environment = environment;\n }\n\n getUserMediaStream(constraints: any) {\n if (userMediaPromise) {\n return userMediaPromise;\n }\n\n if (latestUserMediaStream) {\n const videoTrack = latestUserMediaStream.getVideoTracks();\n if (videoTrack.length > 0 && videoTrack[0].readyState === 'live') {\n return Promise.resolve(latestUserMediaStream);\n } else {\n this.destroyUserMediaStream();\n }\n }\n\n userMediaPromise = new Promise((resolve, reject) => {\n try {\n navigator.mediaDevices.getUserMedia(constraints)\n .then((stream: MediaStream) => {\n latestUserMediaStream = stream;\n userMediaPromise = null;\n resolve(stream);\n })\n .catch((err) => {\n userMediaPromise = null;\n reject(err);\n });\n } catch (e) {\n userMediaPromise = null;\n reject(e);\n }\n });\n\n return userMediaPromise;\n }\n\n getDesktopMediaStream(constraints: any) {\n if (desktopMediaPromise) {\n return desktopMediaPromise;\n }\n\n if (latestDesktopMediaStream) {\n const track = latestDesktopMediaStream.getVideoTracks();\n if (track.length > 0 && track[0].readyState === 'live') {\n return Promise.resolve(latestDesktopMediaStream);\n } else {\n this.destroyDesktopMediaStream();\n }\n }\n\n desktopMediaPromise = new Promise((resolve, reject) => {\n try {\n\n //@ts-ignore\n navigator.mediaDevices.getDisplayMedia(constraints)\n .then((stream: MediaStream) => {\n latestDesktopMediaStream = stream;\n desktopMediaPromise = null;\n resolve(stream);\n })\n .catch((err: any) => {\n desktopMediaPromise = null;\n reject(err);\n });\n } catch (e) {\n desktopMediaPromise = null;\n reject(e);\n }\n });\n\n return desktopMediaPromise;\n }\n\n destroyUserMediaStream() {\n if (latestUserMediaStream) {\n latestUserMediaStream.getTracks().forEach((track) => {\n track.stop();\n });\n }\n\n latestUserMediaStream = null;\n userMediaPromise = null;\n }\n\n destroyDesktopMediaStream() {\n if (latestDesktopMediaStream) {\n latestDesktopMediaStream.getTracks().forEach((track) => {\n track.stop();\n });\n }\n\n latestDesktopMediaStream = null;\n desktopMediaPromise = null;\n }\n}\n"]}
|
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
var latestUserMediaStream = null;
|
|
5
|
-
var userMediaPromise = null;
|
|
6
|
-
var latestDesktopMediaStream = null;
|
|
7
|
-
var desktopMediaPromise = null;
|
|
8
|
-
var LocalStreamManager = /** @class */function () {
|
|
9
|
-
function LocalStreamManager(environment) {
|
|
10
|
-
this.environment = environment;
|
|
11
|
-
}
|
|
12
|
-
LocalStreamManager.prototype.getUserMediaStream = function (constraints) {
|
|
13
|
-
if (userMediaPromise) {
|
|
14
|
-
return userMediaPromise;
|
|
15
|
-
}
|
|
16
|
-
if (latestUserMediaStream) {
|
|
17
|
-
var videoTrack = latestUserMediaStream.getVideoTracks();
|
|
18
|
-
if (videoTrack.length > 0 && videoTrack[0].readyState === 'live') {
|
|
19
|
-
return Promise.resolve(latestUserMediaStream);
|
|
20
|
-
} else {
|
|
21
|
-
this.destroyUserMediaStream();
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
userMediaPromise = new Promise(function (resolve, reject) {
|
|
25
|
-
try {
|
|
26
|
-
navigator.mediaDevices.getUserMedia(constraints).then(function (stream) {
|
|
27
|
-
latestUserMediaStream = stream;
|
|
28
|
-
userMediaPromise = null;
|
|
29
|
-
resolve(stream);
|
|
30
|
-
}).catch(function (err) {
|
|
31
|
-
userMediaPromise = null;
|
|
32
|
-
reject(err);
|
|
33
|
-
});
|
|
34
|
-
} catch (e) {
|
|
35
|
-
userMediaPromise = null;
|
|
36
|
-
reject(e);
|
|
37
|
-
}
|
|
38
|
-
});
|
|
39
|
-
return userMediaPromise;
|
|
40
|
-
};
|
|
41
|
-
LocalStreamManager.prototype.getDesktopMediaStream = function (constraints) {
|
|
42
|
-
if (desktopMediaPromise) {
|
|
43
|
-
return desktopMediaPromise;
|
|
44
|
-
}
|
|
45
|
-
if (latestDesktopMediaStream) {
|
|
46
|
-
var track = latestDesktopMediaStream.getVideoTracks();
|
|
47
|
-
if (track.length > 0 && track[0].readyState === 'live') {
|
|
48
|
-
return Promise.resolve(latestDesktopMediaStream);
|
|
49
|
-
} else {
|
|
50
|
-
this.destroyDesktopMediaStream();
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
desktopMediaPromise = new Promise(function (resolve, reject) {
|
|
54
|
-
try {
|
|
55
|
-
//@ts-ignore
|
|
56
|
-
navigator.mediaDevices.getDisplayMedia(constraints).then(function (stream) {
|
|
57
|
-
latestDesktopMediaStream = stream;
|
|
58
|
-
desktopMediaPromise = null;
|
|
59
|
-
resolve(stream);
|
|
60
|
-
}).catch(function (err) {
|
|
61
|
-
desktopMediaPromise = null;
|
|
62
|
-
reject(err);
|
|
63
|
-
});
|
|
64
|
-
} catch (e) {
|
|
65
|
-
desktopMediaPromise = null;
|
|
66
|
-
reject(e);
|
|
67
|
-
}
|
|
68
|
-
});
|
|
69
|
-
return desktopMediaPromise;
|
|
70
|
-
};
|
|
71
|
-
LocalStreamManager.prototype.destroyUserMediaStream = function () {
|
|
72
|
-
if (latestUserMediaStream) {
|
|
73
|
-
latestUserMediaStream.getTracks().forEach(function (track) {
|
|
74
|
-
track.stop();
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
|
-
latestUserMediaStream = null;
|
|
78
|
-
userMediaPromise = null;
|
|
79
|
-
};
|
|
80
|
-
LocalStreamManager.prototype.destroyDesktopMediaStream = function () {
|
|
81
|
-
if (latestDesktopMediaStream) {
|
|
82
|
-
latestDesktopMediaStream.getTracks().forEach(function (track) {
|
|
83
|
-
track.stop();
|
|
84
|
-
});
|
|
85
|
-
}
|
|
86
|
-
latestDesktopMediaStream = null;
|
|
87
|
-
desktopMediaPromise = null;
|
|
88
|
-
};
|
|
89
|
-
return LocalStreamManager;
|
|
90
|
-
}();
|
|
91
|
-
exports.LocalStreamManager = LocalStreamManager;
|
|
92
|
-
|
|
93
|
-
//# sourceMappingURL=LocalStreamManager.js.map
|
|
94
|
-
//# sourceMappingURL=LocalStreamManager.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["v2/LocalStreamManager.js"],"names":["Object","defineProperty","exports","value","latestUserMediaStream","userMediaPromise","latestDesktopMediaStream","desktopMediaPromise","LocalStreamManager","environment","prototype","getUserMediaStream","constraints","videoTrack","getVideoTracks","length","readyState","Promise","resolve","destroyUserMediaStream","reject","navigator","mediaDevices","getUserMedia","then","stream","catch","err","e","getDesktopMediaStream","track","destroyDesktopMediaStream","getDisplayMedia","getTracks","forEach","stop"],"mappings":"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","file":"LocalStreamManager.js","sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar latestUserMediaStream = null;\nvar userMediaPromise = null;\nvar latestDesktopMediaStream = null;\nvar desktopMediaPromise = null;\nvar LocalStreamManager = /** @class */ (function () {\n function LocalStreamManager(environment) {\n this.environment = environment;\n }\n LocalStreamManager.prototype.getUserMediaStream = function (constraints) {\n if (userMediaPromise) {\n return userMediaPromise;\n }\n if (latestUserMediaStream) {\n var videoTrack = latestUserMediaStream.getVideoTracks();\n if (videoTrack.length > 0 && videoTrack[0].readyState === 'live') {\n return Promise.resolve(latestUserMediaStream);\n }\n else {\n this.destroyUserMediaStream();\n }\n }\n userMediaPromise = new Promise(function (resolve, reject) {\n try {\n navigator.mediaDevices.getUserMedia(constraints)\n .then(function (stream) {\n latestUserMediaStream = stream;\n userMediaPromise = null;\n resolve(stream);\n })\n .catch(function (err) {\n userMediaPromise = null;\n reject(err);\n });\n }\n catch (e) {\n userMediaPromise = null;\n reject(e);\n }\n });\n return userMediaPromise;\n };\n LocalStreamManager.prototype.getDesktopMediaStream = function (constraints) {\n if (desktopMediaPromise) {\n return desktopMediaPromise;\n }\n if (latestDesktopMediaStream) {\n var track = latestDesktopMediaStream.getVideoTracks();\n if (track.length > 0 && track[0].readyState === 'live') {\n return Promise.resolve(latestDesktopMediaStream);\n }\n else {\n this.destroyDesktopMediaStream();\n }\n }\n desktopMediaPromise = new Promise(function (resolve, reject) {\n try {\n //@ts-ignore\n navigator.mediaDevices.getDisplayMedia(constraints)\n .then(function (stream) {\n latestDesktopMediaStream = stream;\n desktopMediaPromise = null;\n resolve(stream);\n })\n .catch(function (err) {\n desktopMediaPromise = null;\n reject(err);\n });\n }\n catch (e) {\n desktopMediaPromise = null;\n reject(e);\n }\n });\n return desktopMediaPromise;\n };\n LocalStreamManager.prototype.destroyUserMediaStream = function () {\n if (latestUserMediaStream) {\n latestUserMediaStream.getTracks().forEach(function (track) {\n track.stop();\n });\n }\n latestUserMediaStream = null;\n userMediaPromise = null;\n };\n LocalStreamManager.prototype.destroyDesktopMediaStream = function () {\n if (latestDesktopMediaStream) {\n latestDesktopMediaStream.getTracks().forEach(function (track) {\n track.stop();\n });\n }\n latestDesktopMediaStream = null;\n desktopMediaPromise = null;\n };\n return LocalStreamManager;\n}());\nexports.LocalStreamManager = LocalStreamManager;\n\n//# sourceMappingURL=LocalStreamManager.js.map\n"]}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { TechseeMediaSubscriber } from './MediaSubscriber';
|
|
2
|
-
import { MediaServiceOptions, MediaSessionParams, MediaSubscriberParams } from './Contracts';
|
|
3
|
-
import { TsEnvironmentDetect } from '@techsee/techsee-common/lib/helpers/ts-environment-detect';
|
|
4
|
-
export declare abstract class TechseeMediaServiceBase {
|
|
5
|
-
private _session;
|
|
6
|
-
private _serviceOptions;
|
|
7
|
-
private _deviceMediaOptions?;
|
|
8
|
-
private readonly _environment;
|
|
9
|
-
private readonly _streamsManager;
|
|
10
|
-
protected constructor(environment: TsEnvironmentDetect);
|
|
11
|
-
protected abstract getPublishedStream(): Promise<MediaStream>;
|
|
12
|
-
localStreamsFactory(): Promise<MediaStream>;
|
|
13
|
-
initMediaService(serviceOptions: MediaServiceOptions): Promise<void>;
|
|
14
|
-
verifyMediaAccess(): Promise<MediaStream>;
|
|
15
|
-
connectToSession(sessionParams: MediaSessionParams): Promise<void> | undefined;
|
|
16
|
-
disconnectFromSession(): Promise<void>;
|
|
17
|
-
createSubscriber(subscriberParams: MediaSubscriberParams): TechseeMediaSubscriber;
|
|
18
|
-
clearService(): Promise<undefined>;
|
|
19
|
-
private subscribeSessionEvents;
|
|
20
|
-
private deviceOptionsGuard;
|
|
21
|
-
private normalizeServiceOptions;
|
|
22
|
-
private getUserMediaConstraints;
|
|
23
|
-
private getDisplayMediaConstraints;
|
|
24
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/v2/MediaServiceBase.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,sBAAsB,EAAC,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAqB,mBAAmB,EAAE,kBAAkB,EAAE,qBAAqB,EAAC,MAAM,aAAa,CAAC;AAG/G,OAAO,EAAC,mBAAmB,EAAC,MAAM,2DAA2D,CAAC;AAK9F,8BAAsB,uBAAuB;IACzC,OAAO,CAAC,QAAQ,CAMN;IAEV,OAAO,CAAC,eAAe,CAAuC;IAC9D,OAAO,CAAC,mBAAmB,CAAC,CAAsC;IAClE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAsB;IACnD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAqB;IAErD,SAAS,aAAa,WAAW,EAAE,mBAAmB;IAQtD,SAAS,CAAC,QAAQ,CAAC,kBAAkB,IAAI,OAAO,CAAC,WAAW,CAAC;IAE7D,mBAAmB;IAUnB,gBAAgB,CAAC,cAAc,EAAE,mBAAmB;IAWpD,iBAAiB;IAMjB,gBAAgB,CAAC,aAAa,EAAE,kBAAkB;IAgBlD,qBAAqB;IAMrB,gBAAgB,CAAC,gBAAgB,EAAE,qBAAqB;IAIxD,YAAY;IAMZ,OAAO,CAAC,sBAAsB;IAI9B,OAAO,CAAC,kBAAkB;IAM1B,OAAO,CAAC,uBAAuB;IAU/B,OAAO,CAAC,uBAAuB;IAI/B,OAAO,CAAC,0BAA0B;CAGrC","file":"MediaServiceBase.d.ts","sourcesContent":["import {Nullable} from '@techsee/techsee-common';\nimport {TechseeMediaSubscriber} from './MediaSubscriber';\nimport {DeviceMediaOptions, MediaServiceOptions, MediaSessionParams, MediaSubscriberParams} from './Contracts';\n\n//@ts-ignore\nimport {TsEnvironmentDetect} from '@techsee/techsee-common/lib/helpers/ts-environment-detect';\nimport {LocalStreamManager} from './LocalStreamManager';\n\nimport cloneDeep from 'lodash/cloneDeep';\n\nexport abstract class TechseeMediaServiceBase {\n private _session: Nullable<{\n params: MediaSessionParams,\n connectPromise?: Promise<void>,\n connectResolve?: () => void\n connectReject?: () => void\n instance?: any,\n }> = null;\n\n private _serviceOptions: Nullable<MediaServiceOptions> = null;\n private _deviceMediaOptions?: Nullable<DeviceMediaOptions> = null;\n private readonly _environment: TsEnvironmentDetect;\n private readonly _streamsManager: LocalStreamManager;\n\n protected constructor(environment: TsEnvironmentDetect) {\n this._environment = environment;\n\n this._streamsManager = new LocalStreamManager(this._environment);\n\n this.localStreamsFactory = this.localStreamsFactory.bind(this);\n }\n\n protected abstract getPublishedStream(): Promise<MediaStream>;\n\n localStreamsFactory() {\n this.deviceOptionsGuard();\n\n return this.getPublishedStream();\n\n // if (this._deviceMediaOptions!.desktopStream) {\n // return this._streamsManager.getDesktopStream(this._deviceMediaOptions!.desktopStream.resolution);\n // }\n }\n\n initMediaService(serviceOptions: MediaServiceOptions) {\n if (!this._serviceOptions) {\n this._serviceOptions = this.normalizeServiceOptions(serviceOptions);\n } else {\n console.warn('Multiple initialization does not supposed to happen. Please check the flow.');\n }\n\n return Promise.resolve();\n }\n\n //Verifies that application has access to requested media, by creating stream of this media kind\n verifyMediaAccess() {\n this.deviceOptionsGuard();\n\n return this.getPublishedStream();\n }\n\n connectToSession(sessionParams: MediaSessionParams) {\n this.deviceOptionsGuard();\n\n if (!this._session) {\n this._session = {params: sessionParams};\n this._session.connectPromise = new Promise((resolve, reject) => {\n this._session!.connectResolve = resolve;\n this._session!.connectReject = reject;\n });\n } else {\n console.warn('Session connected already. Disconnect before connect to new session again');\n }\n\n return this._session.connectPromise;\n }\n\n disconnectFromSession() {\n this._session = null;\n\n return Promise.resolve();\n }\n\n createSubscriber(subscriberParams: MediaSubscriberParams) {\n return new TechseeMediaSubscriber(subscriberParams);\n }\n\n clearService() {\n return Promise.all([\n this.disconnectFromSession()\n ]).then(() => undefined);\n }\n\n private subscribeSessionEvents(session: any): void {\n\n }\n\n private deviceOptionsGuard() {\n if (!this._deviceMediaOptions) {\n throw new Error('Media service is not initialized');\n }\n }\n\n private normalizeServiceOptions(serviceOptions: MediaServiceOptions) {\n const options = cloneDeep(serviceOptions);\n\n if (!options.deviceMediaOptions.loopBackVideo) {\n options.deviceMediaOptions.loopBackVideo = serviceOptions.deviceMediaOptions.desktopStream;\n }\n\n return options;\n }\n\n private getUserMediaConstraints() {\n\n }\n\n private getDisplayMediaConstraints() {\n\n }\n}\n"]}
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var __importDefault = undefined && undefined.__importDefault || function (mod) {
|
|
4
|
-
return mod && mod.__esModule ? mod : { "default": mod };
|
|
5
|
-
};
|
|
6
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
var MediaSubscriber_1 = require("./MediaSubscriber");
|
|
8
|
-
var LocalStreamManager_1 = require("./LocalStreamManager");
|
|
9
|
-
var cloneDeep_1 = __importDefault(require("lodash/cloneDeep"));
|
|
10
|
-
var TechseeMediaServiceBase = /** @class */function () {
|
|
11
|
-
function TechseeMediaServiceBase(environment) {
|
|
12
|
-
this._session = null;
|
|
13
|
-
this._serviceOptions = null;
|
|
14
|
-
this._deviceMediaOptions = null;
|
|
15
|
-
this._environment = environment;
|
|
16
|
-
this._streamsManager = new LocalStreamManager_1.LocalStreamManager(this._environment);
|
|
17
|
-
this.localStreamsFactory = this.localStreamsFactory.bind(this);
|
|
18
|
-
}
|
|
19
|
-
TechseeMediaServiceBase.prototype.localStreamsFactory = function () {
|
|
20
|
-
this.deviceOptionsGuard();
|
|
21
|
-
return this.getPublishedStream();
|
|
22
|
-
// if (this._deviceMediaOptions!.desktopStream) {
|
|
23
|
-
// return this._streamsManager.getDesktopStream(this._deviceMediaOptions!.desktopStream.resolution);
|
|
24
|
-
// }
|
|
25
|
-
};
|
|
26
|
-
TechseeMediaServiceBase.prototype.initMediaService = function (serviceOptions) {
|
|
27
|
-
if (!this._serviceOptions) {
|
|
28
|
-
this._serviceOptions = this.normalizeServiceOptions(serviceOptions);
|
|
29
|
-
} else {
|
|
30
|
-
console.warn('Multiple initialization does not supposed to happen. Please check the flow.');
|
|
31
|
-
}
|
|
32
|
-
return Promise.resolve();
|
|
33
|
-
};
|
|
34
|
-
//Verifies that application has access to requested media, by creating stream of this media kind
|
|
35
|
-
TechseeMediaServiceBase.prototype.verifyMediaAccess = function () {
|
|
36
|
-
this.deviceOptionsGuard();
|
|
37
|
-
return this.getPublishedStream();
|
|
38
|
-
};
|
|
39
|
-
TechseeMediaServiceBase.prototype.connectToSession = function (sessionParams) {
|
|
40
|
-
var _this = this;
|
|
41
|
-
this.deviceOptionsGuard();
|
|
42
|
-
if (!this._session) {
|
|
43
|
-
this._session = { params: sessionParams };
|
|
44
|
-
this._session.connectPromise = new Promise(function (resolve, reject) {
|
|
45
|
-
_this._session.connectResolve = resolve;
|
|
46
|
-
_this._session.connectReject = reject;
|
|
47
|
-
});
|
|
48
|
-
} else {
|
|
49
|
-
console.warn('Session connected already. Disconnect before connect to new session again');
|
|
50
|
-
}
|
|
51
|
-
return this._session.connectPromise;
|
|
52
|
-
};
|
|
53
|
-
TechseeMediaServiceBase.prototype.disconnectFromSession = function () {
|
|
54
|
-
this._session = null;
|
|
55
|
-
return Promise.resolve();
|
|
56
|
-
};
|
|
57
|
-
TechseeMediaServiceBase.prototype.createSubscriber = function (subscriberParams) {
|
|
58
|
-
return new MediaSubscriber_1.TechseeMediaSubscriber(subscriberParams);
|
|
59
|
-
};
|
|
60
|
-
TechseeMediaServiceBase.prototype.clearService = function () {
|
|
61
|
-
return Promise.all([this.disconnectFromSession()]).then(function () {
|
|
62
|
-
return undefined;
|
|
63
|
-
});
|
|
64
|
-
};
|
|
65
|
-
TechseeMediaServiceBase.prototype.subscribeSessionEvents = function (session) {};
|
|
66
|
-
TechseeMediaServiceBase.prototype.deviceOptionsGuard = function () {
|
|
67
|
-
if (!this._deviceMediaOptions) {
|
|
68
|
-
throw new Error('Media service is not initialized');
|
|
69
|
-
}
|
|
70
|
-
};
|
|
71
|
-
TechseeMediaServiceBase.prototype.normalizeServiceOptions = function (serviceOptions) {
|
|
72
|
-
var options = cloneDeep_1.default(serviceOptions);
|
|
73
|
-
if (!options.deviceMediaOptions.loopBackVideo) {
|
|
74
|
-
options.deviceMediaOptions.loopBackVideo = serviceOptions.deviceMediaOptions.desktopStream;
|
|
75
|
-
}
|
|
76
|
-
return options;
|
|
77
|
-
};
|
|
78
|
-
TechseeMediaServiceBase.prototype.getUserMediaConstraints = function () {};
|
|
79
|
-
TechseeMediaServiceBase.prototype.getDisplayMediaConstraints = function () {};
|
|
80
|
-
return TechseeMediaServiceBase;
|
|
81
|
-
}();
|
|
82
|
-
exports.TechseeMediaServiceBase = TechseeMediaServiceBase;
|
|
83
|
-
|
|
84
|
-
//# sourceMappingURL=MediaServiceBase.js.map
|
|
85
|
-
//# sourceMappingURL=MediaServiceBase.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["v2/MediaServiceBase.js"],"names":["__importDefault","mod","__esModule","Object","defineProperty","exports","value","MediaSubscriber_1","require","LocalStreamManager_1","cloneDeep_1","TechseeMediaServiceBase","environment","_session","_serviceOptions","_deviceMediaOptions","_environment","_streamsManager","LocalStreamManager","localStreamsFactory","bind","prototype","deviceOptionsGuard","getPublishedStream","initMediaService","serviceOptions","normalizeServiceOptions","console","warn","Promise","resolve","verifyMediaAccess","connectToSession","sessionParams","_this","params","connectPromise","reject","connectResolve","connectReject","disconnectFromSession","createSubscriber","subscriberParams","TechseeMediaSubscriber","clearService","all","then","undefined","subscribeSessionEvents","session","Error","options","default","deviceMediaOptions","loopBackVideo","desktopStream","getUserMediaConstraints","getDisplayMediaConstraints"],"mappings":"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","file":"MediaServiceBase.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 });\nvar MediaSubscriber_1 = require(\"./MediaSubscriber\");\nvar LocalStreamManager_1 = require(\"./LocalStreamManager\");\nvar cloneDeep_1 = __importDefault(require(\"lodash/cloneDeep\"));\nvar TechseeMediaServiceBase = /** @class */ (function () {\n function TechseeMediaServiceBase(environment) {\n this._session = null;\n this._serviceOptions = null;\n this._deviceMediaOptions = null;\n this._environment = environment;\n this._streamsManager = new LocalStreamManager_1.LocalStreamManager(this._environment);\n this.localStreamsFactory = this.localStreamsFactory.bind(this);\n }\n TechseeMediaServiceBase.prototype.localStreamsFactory = function () {\n this.deviceOptionsGuard();\n return this.getPublishedStream();\n // if (this._deviceMediaOptions!.desktopStream) {\n // return this._streamsManager.getDesktopStream(this._deviceMediaOptions!.desktopStream.resolution);\n // }\n };\n TechseeMediaServiceBase.prototype.initMediaService = function (serviceOptions) {\n if (!this._serviceOptions) {\n this._serviceOptions = this.normalizeServiceOptions(serviceOptions);\n }\n else {\n console.warn('Multiple initialization does not supposed to happen. Please check the flow.');\n }\n return Promise.resolve();\n };\n //Verifies that application has access to requested media, by creating stream of this media kind\n TechseeMediaServiceBase.prototype.verifyMediaAccess = function () {\n this.deviceOptionsGuard();\n return this.getPublishedStream();\n };\n TechseeMediaServiceBase.prototype.connectToSession = function (sessionParams) {\n var _this = this;\n this.deviceOptionsGuard();\n if (!this._session) {\n this._session = { params: sessionParams };\n this._session.connectPromise = new Promise(function (resolve, reject) {\n _this._session.connectResolve = resolve;\n _this._session.connectReject = reject;\n });\n }\n else {\n console.warn('Session connected already. Disconnect before connect to new session again');\n }\n return this._session.connectPromise;\n };\n TechseeMediaServiceBase.prototype.disconnectFromSession = function () {\n this._session = null;\n return Promise.resolve();\n };\n TechseeMediaServiceBase.prototype.createSubscriber = function (subscriberParams) {\n return new MediaSubscriber_1.TechseeMediaSubscriber(subscriberParams);\n };\n TechseeMediaServiceBase.prototype.clearService = function () {\n return Promise.all([\n this.disconnectFromSession()\n ]).then(function () { return undefined; });\n };\n TechseeMediaServiceBase.prototype.subscribeSessionEvents = function (session) {\n };\n TechseeMediaServiceBase.prototype.deviceOptionsGuard = function () {\n if (!this._deviceMediaOptions) {\n throw new Error('Media service is not initialized');\n }\n };\n TechseeMediaServiceBase.prototype.normalizeServiceOptions = function (serviceOptions) {\n var options = cloneDeep_1.default(serviceOptions);\n if (!options.deviceMediaOptions.loopBackVideo) {\n options.deviceMediaOptions.loopBackVideo = serviceOptions.deviceMediaOptions.desktopStream;\n }\n return options;\n };\n TechseeMediaServiceBase.prototype.getUserMediaConstraints = function () {\n };\n TechseeMediaServiceBase.prototype.getDisplayMediaConstraints = function () {\n };\n return TechseeMediaServiceBase;\n}());\nexports.TechseeMediaServiceBase = TechseeMediaServiceBase;\n\n//# sourceMappingURL=MediaServiceBase.js.map\n"]}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { MediaSubscriberParams } from './Contracts';
|
|
2
|
-
export declare enum MediaSubscriberEvent {
|
|
3
|
-
}
|
|
4
|
-
export declare class TechseeMediaSubscriber {
|
|
5
|
-
private _emitter;
|
|
6
|
-
constructor(subscriberParams: MediaSubscriberParams);
|
|
7
|
-
on(event: MediaSubscriberEvent): void;
|
|
8
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/v2/MediaSubscriber.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,qBAAqB,EAAC,MAAM,aAAa,CAAC;AAElD,oBAAY,oBAAoB;CAE/B;AAED,qBAAa,sBAAsB;IAC/B,OAAO,CAAC,QAAQ,CAAe;gBAEnB,gBAAgB,EAAE,qBAAqB;IAInD,EAAE,CAAC,KAAK,EAAE,oBAAoB;CAGjC","file":"MediaSubscriber.d.ts","sourcesContent":["import {EventEmitter} from 'events';\nimport {MediaSubscriberParams} from './Contracts';\n\nexport enum MediaSubscriberEvent {\n\n}\n\nexport class TechseeMediaSubscriber {\n private _emitter: EventEmitter;\n\n constructor(subscriberParams: MediaSubscriberParams) {\n this._emitter = new EventEmitter();\n }\n\n on(event: MediaSubscriberEvent) {\n\n }\n}\n"]}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
var events_1 = require("events");
|
|
5
|
-
var MediaSubscriberEvent;
|
|
6
|
-
(function (MediaSubscriberEvent) {})(MediaSubscriberEvent = exports.MediaSubscriberEvent || (exports.MediaSubscriberEvent = {}));
|
|
7
|
-
var TechseeMediaSubscriber = /** @class */function () {
|
|
8
|
-
function TechseeMediaSubscriber(subscriberParams) {
|
|
9
|
-
this._emitter = new events_1.EventEmitter();
|
|
10
|
-
}
|
|
11
|
-
TechseeMediaSubscriber.prototype.on = function (event) {};
|
|
12
|
-
return TechseeMediaSubscriber;
|
|
13
|
-
}();
|
|
14
|
-
exports.TechseeMediaSubscriber = TechseeMediaSubscriber;
|
|
15
|
-
|
|
16
|
-
//# sourceMappingURL=MediaSubscriber.js.map
|
|
17
|
-
//# sourceMappingURL=MediaSubscriber.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["v2/MediaSubscriber.js"],"names":["Object","defineProperty","exports","value","events_1","require","MediaSubscriberEvent","TechseeMediaSubscriber","subscriberParams","_emitter","EventEmitter","prototype","on","event"],"mappings":"AAAA;;AACAA,OAAOC,cAAP,CAAsBC,OAAtB,EAA+B,YAA/B,EAA6C,EAAEC,OAAO,IAAT,EAA7C;AACA,IAAIC,WAAWC,QAAQ,QAAR,CAAf;AACA,IAAIC,oBAAJ;AACA,CAAC,UAAUA,oBAAV,EAAgC,CAChC,CADD,EACGA,uBAAuBJ,QAAQI,oBAAR,KAAiCJ,QAAQI,oBAAR,GAA+B,EAAhE,CAD1B;AAEA,IAAIC,yBAAyB,aAAe,YAAY;AACpD,aAASA,sBAAT,CAAgCC,gBAAhC,EAAkD;AAC9C,aAAKC,QAAL,GAAgB,IAAIL,SAASM,YAAb,EAAhB;AACH;AACDH,2BAAuBI,SAAvB,CAAiCC,EAAjC,GAAsC,UAAUC,KAAV,EAAiB,CACtD,CADD;AAEA,WAAON,sBAAP;AACH,CAP2C,EAA5C;AAQAL,QAAQK,sBAAR,GAAiCA,sBAAjC;;AAEA","file":"MediaSubscriber.js","sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar events_1 = require(\"events\");\nvar MediaSubscriberEvent;\n(function (MediaSubscriberEvent) {\n})(MediaSubscriberEvent = exports.MediaSubscriberEvent || (exports.MediaSubscriberEvent = {}));\nvar TechseeMediaSubscriber = /** @class */ (function () {\n function TechseeMediaSubscriber(subscriberParams) {\n this._emitter = new events_1.EventEmitter();\n }\n TechseeMediaSubscriber.prototype.on = function (event) {\n };\n return TechseeMediaSubscriber;\n}());\nexports.TechseeMediaSubscriber = TechseeMediaSubscriber;\n\n//# sourceMappingURL=MediaSubscriber.js.map\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["webrtc/constants.js"],"names":["SOCKET_EVENTS","OUTGOING","ICE_CANDIDATE","JOIN_PIPELINE","DESTROY_PIPELINE","JOIN_ROOM","SDP_OFFER","SDP_ANSWER","INCOMING","JOIN_RESPONSE","ERROR","PIPELINE_DESTROYED","SEND_OFFER","PUBLISHER_RECONNECT","PEER_DISCONNECTED","PIPELINE_TYPES","AUDIO_VIDEO_TO_SUBSCRIBERS","AUDIO_VIDEO_TO_SUBSCRIBERS_WITH_SMART","CLIENT_TYPES","PUBLISHER","SUBSCRIBER","INITIATOR","GUEST","PEER_CONNECTION_TYPES","SEND_ONLY","RECV_ONLY","SEND_RECV","COOKIES","UID","DEFAULT_STREAM_NAMES","MOBILE_CLIENT_VIDEO_STREAM","MOBILE_CLIENT_AUDIO_STREAM","DASHBOARD_AUDIO_STREAM","RECONNECT_TURN_SERVER_INTERVAL","FAILED_CONNECTING_TURN_SERVER_INTERVAL","WAIT_FOR_PC_INTERVAL","PUBLISH_APPROVAL_CHECK_INTERVAL","SOCKET_RECONNECTION_DELAY","SOCKET_RECONNECTION_DELAY_MAX","SOCKET_RECONNECTION_ATTEMPTS","SOCKET_PATH"],"mappings":";;;AAAO,IAAMA,wCAAgB;AACzBC,cAAU;AACN;AACAC,uBAAe,gBAFT;;AAIN;AACA;AACA;;AAEA;AACAC,uBAAe,cATT;;AAWN;AACAC,0BAAkB,iBAZZ;;AAcN;AACA;AACA;;AAEA;AACAC,mBAAW,UAnBL;;AAqBN;AACAC,mBAAW,cAtBL;;AAwBN;AACAC,oBAAY;AAzBN,KADe;AA4BzBC,cAAU;AACN;AACA;AACAC,uBAAe,cAHT,EAGyB;;AAE/B;AACAP,uBAAe,cANT;;AAQN;AACAQ,eAAO,cATD;;AAWN;AACA;AACA;;AAEA;AACAC,4BAAoB,mBAhBd;;AAkBN;AACA;AACA;;AAEA;AACAC,oBAAY,WAvBN;;AAyBN;AACAN,mBAAW,cA1BL;;AA4BN;AACAO,6BAAqB,oBA7Bf;;AA+BN;AACAC,2BAAmB;AAhCb;AA5Be,CAAtB;;AAgEP;AACO,IAAMC,0CAAiB;AAC1BC,gCAA4B,iBADF;AAE1BC,2CAAuC;AAFb,CAAvB;;AAKA,IAAMC,sCAAe;AACxBC,eAAW,WADa;AAExBC,gBAAY,YAFY;AAGxBC,eAAW,WAHa;AAIxBC,WAAO;AAJiB,CAArB;;AAOA,IAAMC,wDAAwB;AACjCC,eAAW,oBADsB;AAEjCC,eAAW,oBAFsB;AAGjCC,eAAW;AAHsB,CAA9B;;AAMP;AACO,IAAMC,4BAAU;AACnBC,SAAK;AADc,CAAhB;;AAIA,IAAMC,sDAAuB;AAChCC,gCAA4B,4BADI;AAEhCC,gCAA4B,4BAFI;AAGhCC,4BAAwB;AAHQ,CAA7B;;AAMP;AACO,IAAMC,0EAAiC,IAAvC;;AAEP;AACO,IAAMC,0FAAyC,KAA/C;;AAEP;AACO,IAAMC,sDAAuB,IAA7B;;AAEP;AACO,IAAMC,4EAAkC,IAAxC;;AAEA,IAAMC,gEAA4B,IAAlC;AAAA,IACHC,wEAAgC,IAD7B;AAAA,IAEHC,sEAA+B,GAF5B;AAAA,IAGHC,oCAAc,aAHX","file":"constants.js","sourcesContent":["export const SOCKET_EVENTS = {\n OUTGOING: {\n // Emitted to a peer, offering an ICE candidate\n ICE_CANDIDATE: 'onIceCandidate',\n\n //\n // KMS Events\n //\n\n // Initial event, sent by pub/sub as a request to create/join a pipeline\n JOIN_PIPELINE: 'joinPipeline',\n\n // Final event, sent by pub/sub as a request to destroy a pipeline, or response to PIPELINE_DESTROYED event\n DESTROY_PIPELINE: 'destroyPipeline',\n\n //\n // TURN Events\n //\n\n // Initial event, sent by pub/sub as a request to create/join a room\n JOIN_ROOM: 'joinRoom',\n\n // Sent by publisher, as a response to an SDP offer request (SEND_OFFER)\n SDP_OFFER: 'sdpOfferSend',\n\n // An SDP response (emitted after receiving an SDP offer)\n SDP_ANSWER: 'sdpAnswerSend'\n },\n INCOMING: {\n // In TURN - Received by a publisher, as a response to an SDP_ANSWER sent by a subscriber\n // In KMS - Received after JOIN_PIPELINE is processed\n JOIN_RESPONSE: 'joinResponse', // This event is received by a publisher, when the sig server receive an SDP answer from subscriber\n\n // An incoming ICE candidate sent by a peer\n ICE_CANDIDATE: 'iceCandidate',\n\n // An error occured in the signaling server\n ERROR: 'errorOccured',\n\n //\n // KMS Events\n //\n\n // KMS pipeline was destroyed, in response we do a cleanup\n PIPELINE_DESTROYED: 'pipelineDestroyed',\n\n //\n // TURN Events\n //\n\n // Received by a publisher (sent by signaling server when a peer joining a room)\n SEND_OFFER: 'sendOffer',\n\n // Recieved by a subscriber when publisher sent an SDP offer\n SDP_OFFER: 'sdpOfferRecv',\n\n // Recieved by all subscribers, when the publisher has reconnected\n PUBLISHER_RECONNECT: 'publisherReconnect',\n\n // Recieved by the publisher, when a subscriber has disconnected\n PEER_DISCONNECTED: 'peerDisconnected'\n }\n};\n\n// KMS - Pipeline types\nexport const PIPELINE_TYPES = {\n AUDIO_VIDEO_TO_SUBSCRIBERS: 'AudioVideoToSub',\n AUDIO_VIDEO_TO_SUBSCRIBERS_WITH_SMART: 'AudioVideoToSubWithSmart'\n};\n\nexport const CLIENT_TYPES = {\n PUBLISHER: 'publisher',\n SUBSCRIBER: 'subscriber',\n INITIATOR: 'publisher',\n GUEST: 'subscriber'\n};\n\nexport const PEER_CONNECTION_TYPES = {\n SEND_ONLY: 'WebRtcPeerSendonly',\n RECV_ONLY: 'WebRtcPeerRecvonly',\n SEND_RECV: 'WebRtcPeerSendrecv'\n};\n\n// Used to store the peer unique identifier (UID)\nexport const COOKIES = {\n UID: 'media-client.uid'\n};\n\nexport const DEFAULT_STREAM_NAMES = {\n MOBILE_CLIENT_VIDEO_STREAM: 'MOBILE_CLIENT_VIDEO_STREAM',\n MOBILE_CLIENT_AUDIO_STREAM: 'MOBILE_CLIENT_AUDIO_STREAM',\n DASHBOARD_AUDIO_STREAM: 'DASHBOARD_AUDIO_STREAM'\n};\n\n// When ICE exchange fail, an interval between reconnection attempts\nexport const RECONNECT_TURN_SERVER_INTERVAL = 1000;\n\n// When ICE exchange start, this is the timeout until the connection is deemed failed\nexport const FAILED_CONNECTING_TURN_SERVER_INTERVAL = 15000;\n\n// Grace to to wait before creating a publisher, if peer connection has not been created yet\nexport const WAIT_FOR_PC_INTERVAL = 2000;\n\n// Interval between checks of video publishing ability attempts\nexport const PUBLISH_APPROVAL_CHECK_INTERVAL = 1000;\n\nexport const SOCKET_RECONNECTION_DELAY = 3000,\n SOCKET_RECONNECTION_DELAY_MAX = 6000,\n SOCKET_RECONNECTION_ATTEMPTS = 100,\n SOCKET_PATH = '/socket2.io';\n"]}
|
package/lib/webrtc/helper.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["webrtc/helper.js"],"names":["trace","window","TSMediaServiceHelper","_resolutionToConstraints","resolution","split","width","height","CONSTRAINTS_TYPES","MIN","IDEAL","POSSIBLE_RESOLUTIONS","FALLBACK_RESOLUTION","_constraintByType","value","type","min","ideal","getMediaConstraints","deviceOpts","constraintType","TsMediaService","getDevices","then","devices","groupedDevices","video","_","filter","device","kind","toLowerCase","audio","videoDevice","last","audioDevice","mediaConstraints","videoResolution","assign","deviceId","facingMode","frameRate","max","getVideoTrackSettings","stream","videoTracks","getTracks","track","isEmpty","videoTrack","getSettings","_constraintsByResolution","_handleGetUserMediaError","error","errorName","get","code","name","getHighestResolutionStream","constraints","createLocalMediaStream","successfulConstraintsFound","Promise","resolve","reject","reduce","total","potentialConstraints","catch","err"],"mappings":"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","file":"helper.js","sourcesContent":["import {TsMediaService} from '../service';\n\nimport {getTracer} from '../tracer';\n\nconst trace = getTracer('TSMediaServiceHelper', () => window.TSMediaServiceHelper === true);\n\nfunction _resolutionToConstraints(resolution) {\n const [width, height] = resolution.split('x');\n\n return {width, height};\n}\n\nexport const CONSTRAINTS_TYPES = {\n MIN: 'min',\n IDEAL: 'ideal'\n};\n\nexport const POSSIBLE_RESOLUTIONS = [\n //'3840x2160', // 4k - disabled since it's an overkill\n '1920x1080', // FHD\n '1280x720' // HD\n];\n\n// In case all possible resolution fails, we'll attempt to set the highest resolution as ideal\nexport const FALLBACK_RESOLUTION = POSSIBLE_RESOLUTIONS[0];\n\nfunction _constraintByType(value, type) {\n switch (type) {\n case CONSTRAINTS_TYPES.MIN:\n return {min: value};\n default:\n return {ideal: value};\n }\n}\n\nexport const getMediaConstraints = ({resolution, deviceOpts, constraintType}) =>\n TsMediaService.getDevices()\n .then((devices) => {\n const groupedDevices = {\n video: _.filter(devices, (device) =>\n device.kind.toLowerCase() === 'videoinput'),\n audio: _.filter(devices, (device) =>\n device.kind.toLowerCase() === 'audioinput')\n };\n\n const videoDevice = deviceOpts.video && _.last(groupedDevices.video);\n const audioDevice = deviceOpts.audio && _.last(groupedDevices.audio);\n\n const mediaConstraints = {};\n trace('getMediaConstraints', videoDevice);\n if (videoDevice) {\n const videoResolution = _resolutionToConstraints(resolution);\n\n _.assign(mediaConstraints, {\n video: {\n deviceId: videoDevice.deviceId,\n width: _constraintByType(videoResolution.width, constraintType),\n height: _constraintByType(videoResolution.height, constraintType),\n facingMode: 'environment',\n frameRate: {ideal: 15, max: 30}\n }\n });\n }\n\n if (audioDevice) {\n _.assign(mediaConstraints, {\n audio: {deviceId: audioDevice.deviceId}\n });\n }\n\n return mediaConstraints;\n });\n\nexport const getVideoTrackSettings = (stream) => {\n const videoTracks = stream.getTracks()\n .filter((track) => (track.kind === 'video'));\n\n if (_.isEmpty(videoTracks)) {\n return;\n }\n\n const videoTrack = videoTracks[0];\n\n return videoTrack.getSettings && videoTrack.getSettings();\n};\n\nfunction _constraintsByResolution(resolution, deviceOpts, constraintType) {\n return getMediaConstraints({\n resolution: resolution,\n deviceOpts: deviceOpts,\n constraintType: constraintType\n });\n}\n\nfunction _handleGetUserMediaError(error) {\n const errorName = _.get(error, 'name');\n\n if (errorName === 'NotAllowedError') {\n return {code: 1500, name: 'NotAllowedError'};\n }\n\n if (errorName === 'PermissionDismissedError') {\n return {code: 8, name: 'PermissionDismissedError'};\n }\n\n return {code: 999, name: errorName || 'UnknownError'};\n}\n\n/**\n * Scan possible resolutions from high to low, trying to set each as minimal.\n * Eventually, use a fallback as ideal so the browser may decide which to use.\n *\n * @method\n * @param {Object} [deviceOpts] Devices to limit to in the constraints\n * @param {Object} [constraints] Media constraints\n *\n * @returns { Promise }\n *\n */\nexport const getHighestResolutionStream = (deviceOpts, constraints) => {\n // In case we had a constraints scan before, return the best\n if (constraints) {\n return TsMediaService.createLocalMediaStream(constraints)\n .then((stream) => ({stream, constraints}));\n }\n\n let successfulConstraintsFound = false;\n\n return new Promise((resolve, reject) => {\n Promise.reduce(POSSIBLE_RESOLUTIONS, (total, resolution) => {\n if (successfulConstraintsFound) {\n return;\n }\n\n return _constraintsByResolution(resolution, deviceOpts, CONSTRAINTS_TYPES.MIN)\n .then((potentialConstraints) => TsMediaService.createLocalMediaStream(potentialConstraints)\n .then((stream) => {\n successfulConstraintsFound = true;\n\n return resolve({stream, constraints: potentialConstraints});\n }))\n .catch(() => null);\n }, 0)\n .then(() => {\n if (successfulConstraintsFound) {\n return;\n }\n\n _constraintsByResolution(FALLBACK_RESOLUTION, deviceOpts, CONSTRAINTS_TYPES.IDEAL)\n .then((potentialConstraints) => TsMediaService.createLocalMediaStream(potentialConstraints)\n .then((stream) => resolve({stream, constraints: potentialConstraints})))\n .catch((err) => reject(_handleGetUserMediaError(err)));\n });\n });\n};\n"]}
|