@techsee/techsee-media-service 999.20.0-nodejs20 → 999.20.2-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/README.md +28 -27
- package/lib/LocalStreamManager.d.ts +0 -1
- package/lib/LocalStreamManager.d.ts.map +1 -1
- package/lib/LocalStreamManager.js +84 -82
- package/lib/LocalStreamManager.js.map +1 -1
- package/lib/MediaConstants.d.ts +3 -21
- package/lib/MediaConstants.d.ts.map +1 -1
- package/lib/MediaConstants.js +13 -32
- package/lib/MediaConstants.js.map +1 -1
- package/lib/MediaContracts.d.ts +1 -7
- package/lib/MediaContracts.d.ts.map +1 -1
- package/lib/MediaContracts.js +4 -1
- package/lib/MediaContracts.js.map +1 -1
- package/lib/MediaPublisher.d.ts +0 -1
- package/lib/MediaPublisher.d.ts.map +1 -1
- package/lib/MediaPublisher.js +10 -7
- package/lib/MediaPublisher.js.map +1 -1
- package/lib/MediaServiceBase.d.ts +0 -1
- package/lib/MediaServiceBase.d.ts.map +1 -1
- package/lib/MediaServiceBase.js +199 -170
- package/lib/MediaServiceBase.js.map +1 -1
- package/lib/MediaSession/MediaServer.d.ts +0 -1
- package/lib/MediaSession/MediaServer.d.ts.map +1 -1
- package/lib/MediaSession/MediaServer.js +74 -62
- package/lib/MediaSession/MediaServer.js.map +1 -1
- package/lib/MediaSession/MediaSessionBase.d.ts +0 -1
- package/lib/MediaSession/MediaSessionBase.d.ts.map +1 -1
- package/lib/MediaSession/MediaSessionBase.js +23 -19
- package/lib/MediaSession/MediaSessionBase.js.map +1 -1
- package/lib/MediaSession/SessionOpentok.d.ts +0 -1
- package/lib/MediaSession/SessionOpentok.d.ts.map +1 -1
- package/lib/MediaSession/SessionOpentok.js +80 -51
- package/lib/MediaSession/SessionOpentok.js.map +1 -1
- package/lib/MediaSession/SessionTurn.d.ts +0 -1
- package/lib/MediaSession/SessionTurn.d.ts.map +1 -1
- package/lib/MediaSession/SessionTurn.js +151 -109
- package/lib/MediaSession/SessionTurn.js.map +1 -1
- package/lib/MediaSession/TurnConstants.d.ts +0 -1
- package/lib/MediaSession/TurnConstants.d.ts.map +1 -1
- package/lib/MediaSession/TurnConstants.js +16 -1
- package/lib/MediaSession/TurnConstants.js.map +1 -1
- package/lib/MediaSubscriber.d.ts +0 -1
- package/lib/MediaSubscriber.d.ts.map +1 -1
- package/lib/MediaSubscriber.js +43 -37
- package/lib/MediaSubscriber.js.map +1 -1
- package/lib/MediaUtils/Compatibility.d.ts +0 -3
- package/lib/MediaUtils/Compatibility.d.ts.map +1 -1
- package/lib/MediaUtils/Compatibility.js +34 -76
- package/lib/MediaUtils/Compatibility.js.map +1 -1
- package/lib/MediaUtils/MediaDomUtils.d.ts +3 -6
- package/lib/MediaUtils/MediaDomUtils.d.ts.map +1 -1
- package/lib/MediaUtils/MediaDomUtils.js +65 -70
- package/lib/MediaUtils/MediaDomUtils.js.map +1 -1
- package/lib/MediaUtils/MediaTracer.d.ts +0 -1
- package/lib/MediaUtils/MediaTracer.d.ts.map +1 -1
- package/lib/MediaUtils/MediaTracer.js +5 -2
- package/lib/MediaUtils/MediaTracer.js.map +1 -1
- package/lib/MultiParty/Contracts.d.ts +10 -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 +14 -17
- package/lib/MultiParty/DetectWebRtcService.d.ts.map +1 -1
- package/lib/MultiParty/DetectWebRtcService.js +54 -98
- package/lib/MultiParty/DetectWebRtcService.js.map +1 -1
- package/lib/MultiParty/MediaCapabilitiesHelper.d.ts +10 -0
- package/lib/MultiParty/MediaCapabilitiesHelper.d.ts.map +1 -0
- package/lib/MultiParty/MediaCapabilitiesHelper.js +140 -0
- package/lib/MultiParty/MediaCapabilitiesHelper.js.map +1 -0
- package/lib/MultiParty/MultiParty.d.ts +19 -0
- package/lib/MultiParty/MultiParty.d.ts.map +1 -0
- package/lib/MultiParty/MultiParty.js +160 -0
- package/lib/MultiParty/MultiParty.js.map +1 -0
- package/lib/MultiParty/OpentokMultiparty.d.ts +25 -0
- package/lib/MultiParty/OpentokMultiparty.d.ts.map +1 -0
- package/lib/MultiParty/OpentokMultiparty.js +184 -0
- package/lib/MultiParty/OpentokMultiparty.js.map +1 -0
- package/lib/TechseeMediaStream.d.ts +0 -1
- package/lib/TechseeMediaStream.d.ts.map +1 -1
- package/lib/TechseeMediaStream.js +12 -9
- package/lib/TechseeMediaStream.js.map +1 -1
- package/lib/oldCode/constants.js +20 -0
- package/lib/oldCode/constants.js.map +1 -0
- package/lib/oldCode/event-emitter.js +39 -0
- package/lib/oldCode/event-emitter.js.map +1 -0
- package/lib/oldCode/index.js +64 -0
- package/lib/oldCode/index.js.map +1 -0
- package/lib/oldCode/opentok/session.js +310 -0
- package/lib/oldCode/opentok/session.js.map +1 -0
- package/lib/oldCode/opentok/stream.js +310 -0
- package/lib/oldCode/opentok/stream.js.map +1 -0
- package/lib/oldCode/publisher.js +143 -0
- package/lib/oldCode/publisher.js.map +1 -0
- package/lib/oldCode/service.js +395 -0
- package/lib/oldCode/service.js.map +1 -0
- package/lib/oldCode/session.js +110 -0
- package/lib/oldCode/session.js.map +1 -0
- package/lib/oldCode/stream.js +195 -0
- package/lib/oldCode/stream.js.map +1 -0
- package/lib/oldCode/subscriber.js +90 -0
- package/lib/oldCode/subscriber.js.map +1 -0
- package/lib/oldCode/tracer.d.ts +36 -0
- package/lib/oldCode/tracer.d.ts.map +1 -0
- package/lib/oldCode/tracer.js +161 -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 +59 -0
- package/lib/oldCode/utils/ImageFixer.js.map +1 -0
- package/lib/oldCode/webrtc/constants.js +114 -0
- package/lib/oldCode/webrtc/constants.js.map +1 -0
- package/lib/oldCode/webrtc/helper.js +173 -0
- package/lib/oldCode/webrtc/helper.js.map +1 -0
- package/lib/oldCode/webrtc/session-kms.js +558 -0
- package/lib/oldCode/webrtc/session-kms.js.map +1 -0
- package/lib/oldCode/webrtc/session-loopback.js +336 -0
- package/lib/oldCode/webrtc/session-loopback.js.map +1 -0
- package/lib/oldCode/webrtc/session-turn.js +880 -0
- package/lib/oldCode/webrtc/session-turn.js.map +1 -0
- package/lib/oldCode/webrtc/session-turn.v2.js +583 -0
- package/lib/oldCode/webrtc/session-turn.v2.js.map +1 -0
- package/lib/oldCode/webrtc/session.js +52 -0
- package/lib/oldCode/webrtc/session.js.map +1 -0
- package/lib/oldCode/webrtc/stream.js +674 -0
- package/lib/oldCode/webrtc/stream.js.map +1 -0
- package/lib/oldCode/webrtc/temasys/adapter-loader.js +12 -0
- package/lib/oldCode/webrtc/temasys/adapter-loader.js.map +1 -0
- package/lib/oldCode/webrtc/temasys/adapter.js +5861 -0
- package/lib/oldCode/webrtc/temasys/adapter.js.map +1 -0
- package/lib/oldCode/webrtc/webrtc-ie-shim.js +3007 -0
- package/lib/oldCode/webrtc/webrtc-ie-shim.js.map +1 -0
- package/lib/qos/raw-qos.js +145 -84
- package/lib/qos/raw-qos.js.map +1 -1
- package/lib/webrtc-ie-shim.js +2950 -1896
- package/lib/webrtc-ie-shim.js.map +1 -1
- package/package.json +61 -66
- package/lib/MediaUtils/index.d.ts +0 -2
- package/lib/MediaUtils/index.d.ts.map +0 -1
- package/lib/MediaUtils/index.js +0 -6
- package/lib/MediaUtils/index.js.map +0 -1
- package/lib/MultiParty/MediaCapabilitiesService.d.ts +0 -18
- package/lib/MultiParty/MediaCapabilitiesService.d.ts.map +0 -1
- package/lib/MultiParty/MediaCapabilitiesService.js +0 -158
- package/lib/MultiParty/MediaCapabilitiesService.js.map +0 -1
- package/lib/MultiParty/MediaCapabilitiesUtils.d.ts +0 -6
- package/lib/MultiParty/MediaCapabilitiesUtils.d.ts.map +0 -1
- package/lib/MultiParty/MediaCapabilitiesUtils.js +0 -123
- package/lib/MultiParty/MediaCapabilitiesUtils.js.map +0 -1
- package/lib/MultiParty/MediaTracer.d.ts +0 -4
- package/lib/MultiParty/MediaTracer.d.ts.map +0 -1
- package/lib/MultiParty/MediaTracer.js +0 -10
- package/lib/MultiParty/MediaTracer.js.map +0 -1
- package/lib/MultiParty/MultiPartyService.d.ts +0 -49
- package/lib/MultiParty/MultiPartyService.d.ts.map +0 -1
- package/lib/MultiParty/MultiPartyService.js +0 -30
- package/lib/MultiParty/MultiPartyService.js.map +0 -1
- package/lib/MultiParty/MultiPartyServiceFactory.d.ts +0 -4
- package/lib/MultiParty/MultiPartyServiceFactory.d.ts.map +0 -1
- package/lib/MultiParty/MultiPartyServiceFactory.js +0 -13
- package/lib/MultiParty/MultiPartyServiceFactory.js.map +0 -1
- package/lib/MultiParty/MultipartyServiceEventTypes.d.ts +0 -89
- package/lib/MultiParty/MultipartyServiceEventTypes.d.ts.map +0 -1
- package/lib/MultiParty/MultipartyServiceEventTypes.js +0 -16
- package/lib/MultiParty/MultipartyServiceEventTypes.js.map +0 -1
- package/lib/MultiParty/index.d.ts +0 -7
- package/lib/MultiParty/index.d.ts.map +0 -1
- package/lib/MultiParty/index.js +0 -25
- package/lib/MultiParty/index.js.map +0 -1
- package/lib/MultiParty/opentok/OpentokMultiPartyService.d.ts +0 -38
- package/lib/MultiParty/opentok/OpentokMultiPartyService.d.ts.map +0 -1
- package/lib/MultiParty/opentok/OpentokMultiPartyService.js +0 -492
- package/lib/MultiParty/opentok/OpentokMultiPartyService.js.map +0 -1
- package/lib/MultiParty/opentok/OpentokPublisher.d.ts +0 -34
- package/lib/MultiParty/opentok/OpentokPublisher.d.ts.map +0 -1
- package/lib/MultiParty/opentok/OpentokPublisher.js +0 -121
- package/lib/MultiParty/opentok/OpentokPublisher.js.map +0 -1
- package/lib/MultiParty/opentok/OpentokPublisherEventMapper.d.ts +0 -20
- package/lib/MultiParty/opentok/OpentokPublisherEventMapper.d.ts.map +0 -1
- package/lib/MultiParty/opentok/OpentokPublisherEventMapper.js +0 -49
- package/lib/MultiParty/opentok/OpentokPublisherEventMapper.js.map +0 -1
- package/lib/MultiParty/opentok/OpentokScreenPublisher.d.ts +0 -6
- package/lib/MultiParty/opentok/OpentokScreenPublisher.d.ts.map +0 -1
- package/lib/MultiParty/opentok/OpentokScreenPublisher.js +0 -48
- package/lib/MultiParty/opentok/OpentokScreenPublisher.js.map +0 -1
- package/lib/MultiParty/opentok/OpentokSubscriber.d.ts +0 -2
- package/lib/MultiParty/opentok/OpentokSubscriber.d.ts.map +0 -1
- package/lib/MultiParty/opentok/OpentokSubscriber.js +0 -26
- package/lib/MultiParty/opentok/OpentokSubscriber.js.map +0 -1
- package/lib/MultiParty/opentok/OpentokVideoPublisher.d.ts +0 -19
- package/lib/MultiParty/opentok/OpentokVideoPublisher.d.ts.map +0 -1
- package/lib/MultiParty/opentok/OpentokVideoPublisher.js +0 -182
- package/lib/MultiParty/opentok/OpentokVideoPublisher.js.map +0 -1
- package/lib/MultiParty/opentok/trace.d.ts +0 -3
- package/lib/MultiParty/opentok/trace.d.ts.map +0 -1
- package/lib/MultiParty/opentok/trace.js +0 -18
- package/lib/MultiParty/opentok/trace.js.map +0 -1
- package/lib/MultiParty/opentok.d.ts +0 -463
- package/lib/MultiParty/types.d.ts +0 -33
- package/lib/MultiParty/types.d.ts.map +0 -1
- package/lib/MultiParty/types.js +0 -3
- package/lib/MultiParty/types.js.map +0 -1
- package/lib/MultiParty/utils.d.ts +0 -10
- package/lib/MultiParty/utils.d.ts.map +0 -1
- package/lib/MultiParty/utils.js +0 -17
- package/lib/MultiParty/utils.js.map +0 -1
- package/lib/qos/raw-qos.d.ts +0 -29
- package/lib/qos/raw-qos.d.ts.map +0 -1
- package/lib/webrtc-ie-shim.d.ts +0 -4
- package/lib/webrtc-ie-shim.d.ts.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["oldCode/webrtc/stream.js"],"names":["EVENTS","TORCH_DELAY","isIE11","TsEnvironmentDetect","tracer","TsWebRTCStream","session","mediaStream","name","isRemote","videoTrackSettings","id","peerConnection","_torchDelayTimeOut","_torchOffTimeOut","_mediaStream","_session","_name","hasVideo","_isMobile","DEFAULT_STREAM_NAMES","MOBILE_CLIENT_VIDEO_STREAM","hasAudio","remote","DASHBOARD_AUDIO_STREAM","MOBILE_CLIENT_AUDIO_STREAM","Math","random","toString","on","SESSION_EVENTS","DISCONNECTED","publisher","destroy","subscriber","_getPeerConnection","_","get","publishAudio","publish","getTracks","forEach","track","kind","setEnabled","enabled","emit","STREAM_PROPERTY_CHANGED","stream","property","value","PROPERTY_CHANGED","publishVideo","subscribe","target","params","height","width","fitMode","insertMode","elementHeight","elementWidth","bindVideoStreamToElement","Promise","resolve","reject","doResolve","videoEl","trace","document","createElement","muted","playsInline","window","WebRTCAdapter","appendChild","bindVideoElement","srcObject","setAttribute","playRes","play","then","catch","error","handleComplete","parentElement","tagName","waitForObjectSettings","intervalInMs","timeoutInMs","isVideoPlaying","videoHeight","videoWidth","waitForVideoSettings","Error","assign","style","TsMediaSubscriber","_element","setupDimensionsListener","destroySubscriber","SUBSCRIBER_EVENTS","DESTROYED","firstChild","unBindVideoElement","parentNode","removeChild","remove","getSnapshot","tsMediaElement","timeout","format","quality","x","y","w","h","videoElement","crop","isUndefined","resize","getImgData","canvas","ctx","getContext","drawImage","toDataURL","getImgDataIE11","_drawAndRemove","image","base64","getFrame","Image","onload","imgData","length","getStats","pc","getVideoTracks","reports","matches","report","includes","type","push","video","head","e","getFullVideoStats","turnFlashlight","isTorchOn","navigator","mediaDevices","clearInterval","setTimeout","capatibilitiesAfter","getCapabilities","torch","applyConstraints","advanced","console","setAutoLightOffTimer","flashlightTimeout","enabledVideoTracks","filter","enabledAudioTracks","getAudioTracks","TsMediaStream"],"mappings":"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","file":"stream.js","sourcesContent":["import {\n EVENTS,\n TsMediaStream\n} from '../stream';\n\nimport {\n EVENTS as SESSION_EVENTS\n} from '../session';\n\nimport {\n EVENTS as SUBSCRIBER_EVENTS,\n TsMediaSubscriber\n} from '../subscriber';\n\nimport {\n DEFAULT_STREAM_NAMES\n} from './constants';\n\nexport {EVENTS};\n\nimport {TsEnvironmentDetect} from '@techsee/techsee-common/lib/helpers/ts-environment-detect';\nimport {repeatWithTimeout} from '@techsee/techsee-common/lib/core/retry-with-timeout';\n\nconst TORCH_DELAY = 1500;\nconst isIE11 = (new TsEnvironmentDetect()).isIE11();\n\nimport {getTracer} from '../tracer';\n\nconst tracer = getTracer();\n\n/**\n * WebRTC-specific implementation of TsMediaStream.\n *\n * Instances of this class are mostly used internally by TsMediaPublisher\n * and for subscribers creating.\n *\n * @class\n * @extends TsMediaStream\n *\n * @see TsMediaStream\n */\nexport class TsWebRTCStream extends TsMediaStream {\n constructor(session, mediaStream, name, isRemote, videoTrackSettings) {\n super(mediaStream.id, session, isRemote, videoTrackSettings);\n\n //In TurnWebRtcSessionV2, we keep connection on instance of stream.\n this.peerConnection = null;\n\n this._torchDelayTimeOut = null;\n this._torchOffTimeOut = null;\n\n /**\n * Browser's native media stream\n *\n * @public\n * @member { Object }\n *\n * {@link https://developer.mozilla.org/en-US/docs/Web/API/MediaStream MediaStream API}\n */\n this._mediaStream = mediaStream;\n\n /**\n * Instance of TsWebRTCSession\n *\n * @private\n * @member { Object }\n *\n * @see TsWebRTCSession\n */\n this._session = session;\n\n this._name = name;\n\n if (!this._name) {\n if (this.hasVideo) {\n if (!this._session._isMobile) {\n this._name = DEFAULT_STREAM_NAMES.MOBILE_CLIENT_VIDEO_STREAM;\n }\n } else if (this.hasAudio) {\n if (this._session._isMobile) {\n this._name = this.remote ? DEFAULT_STREAM_NAMES.DASHBOARD_AUDIO_STREAM : DEFAULT_STREAM_NAMES.MOBILE_CLIENT_AUDIO_STREAM;\n } else {\n this._name = this.remote ? DEFAULT_STREAM_NAMES.MOBILE_CLIENT_AUDIO_STREAM : DEFAULT_STREAM_NAMES.DASHBOARD_AUDIO_STREAM;\n }\n }\n }\n\n if (!this._name) {\n this._name = Math.random().toString();\n }\n\n // TODO I think this will never be emitted, as both app/mobile call session.off() before they call session.disconnect(). And we call the destroy elsewhere\n // TODO Need to make sure that it's always the case, especially for IOS\n session.on(SESSION_EVENTS.DISCONNECTED, () => {\n if (this.publisher) {\n this.publisher.destroy();\n }\n\n if (this.subscriber) {\n this.subscriber.destroy();\n }\n });\n }\n\n /**\n * Unique id of the stream\n *\n * @member { String }\n * @type { String }\n */\n get id() {\n return this._mediaStream.id;\n }\n\n /**\n * Unique name of the stream\n *\n * @member { String }\n * @type { String }\n */\n get name() {\n return this._name;\n }\n\n /**\n * Whether or not stream has enabled video tracks\n *\n * @member { Boolean }\n * @type { Boolean }\n */\n get hasVideo() {\n const enabledVideoTracks = this._mediaStream.getVideoTracks()\n .filter((track) => track.enabled);\n\n return enabledVideoTracks.length > 0;\n }\n\n /**\n * Whether or not stream has enabled audio tracks\n *\n * @member { Boolean }\n * @type { Boolean }\n */\n get hasAudio() {\n const enabledAudioTracks = this._mediaStream.getAudioTracks()\n .filter((track) => track.enabled);\n\n return enabledAudioTracks.length > 0;\n }\n\n _getPeerConnection() {\n // KMS store the peer connection as _pc, TURN store it as _lastPc\n return this.peerConnection\n || _.get(this._session, '_lastPc.peerConnection')\n || _.get(this._session, '_pc.peerConnection');\n }\n\n /**\n * Publish or unpublish audio tracks.\n *\n * Used internally by TsMediaPublisher.publishAudio\n *\n * @method\n *\n * @param { Boolean } publish\n *\n * @fires SESSION_EVENTS.STREAM_PROPERTY_CHANGED\n * @fires STREAM_EVENTS.PROPERTY_CHANGED\n */\n publishAudio(publish) {\n this._mediaStream.getTracks().forEach((track) => {\n if (track.kind === 'audio') {\n if (track.setEnabled) {\n track.setEnabled(publish);\n } else {\n track.enabled = publish;\n }\n }\n });\n\n this._session.emit(SESSION_EVENTS.STREAM_PROPERTY_CHANGED, {\n stream: this,\n property: 'hasAudio',\n value: publish\n });\n\n this.emit(EVENTS.PROPERTY_CHANGED, {\n stream: this,\n property: 'hasAudio',\n value: publish\n });\n }\n\n /**\n * Publish or unpublish video tracks.\n *\n * Used internally by TsMediaPublisher.publishVideo\n *\n * @method\n *\n * @param { Boolean } publish\n *\n * @fires SESSION_EVENTS.STREAM_PROPERTY_CHANGED\n */\n publishVideo(publish) {\n this._mediaStream.getTracks().forEach((track) => {\n if (track.kind === 'video') {\n if (track.setEnabled) {\n track.setEnabled(publish);\n } else {\n track.enabled = publish;\n }\n }\n });\n\n this._session.emit(SESSION_EVENTS.STREAM_PROPERTY_CHANGED, {\n stream: this,\n property: 'hasVideo',\n value: publish\n });\n }\n\n /**\n * Subscribe to a remote stream.\n *\n * Used internally by TsMediaStream.subscribe\n *\n * @method\n *\n * @param { TsMediaStream } stream\n * @param { DOMElement } target\n * @param { Object } params\n * @param { String|Number } params.height Subscriber's view height\n * @param { String|Number } params.width Subscriber's view width\n * @param { String } params.fitMode Subscriber's view fit mode\n * @param { String } params.insertMode Subscriber's view insert mode (Is not in use yet)\n *\n * @returns { Promise<TsMediaSubscriber> } subsriber instance\n *\n * @see TsMediaStream\n */\n subscribe(target, params = {\n height: '100%',\n width: '100%',\n fitMode: 'contain',\n insertMode: 'append'\n }) {\n if (!params) {\n params = target;\n target = null;\n }\n\n const elementHeight = (typeof params.height === 'string') ? params.height : params.height + 'px';\n const elementWidth = (typeof params.width === 'string') ? params.width : params.width + 'px';\n\n const bindVideoStreamToElement = (stream, target) => {\n return new Promise((resolve, reject) => {\n const doResolve = (videoEl) => {\n tracer.trace('Video element created successfully');\n resolve(videoEl);\n };\n\n const videoEl = document.createElement('video');\n videoEl.muted = true;\n videoEl.playsInline = true;\n\n if (isIE11 && window.WebRTCAdapter) {\n target.appendChild(videoEl);\n window.WebRTCAdapter.bindVideoElement(videoEl);\n }\n\n videoEl.srcObject = stream;\n\n if (!isIE11) {\n // Hack to override behavior introduced by Chrome/FF that unmuted video elements can't auto play\n videoEl.setAttribute('muted', '');\n }\n\n try {\n const playRes = videoEl.play();\n if (playRes && playRes.then) {\n playRes.then(() => {\n tracer.trace('Video element play success');\n });\n }\n\n if (playRes && playRes.catch) {\n playRes.catch((error) => {\n tracer.trace('Reject while executing play method on video element', error);\n });\n }\n } catch (error) {\n tracer.trace('Error while executing play method on video element', error);\n }\n\n\n if (isIE11) {\n const handleComplete = () => {\n return videoEl.parentElement.tagName !== 'OBJECT';\n };\n\n const waitForObjectSettings = {intervalInMs: 30, timeoutInMs: 200};\n\n repeatWithTimeout(handleComplete, waitForObjectSettings)\n .then(() => {\n //We will wait, until video is played, then we resolve\n const isVideoPlaying = () => videoEl.videoHeight <= 0 || videoEl.videoWidth <= 0;\n const waitForVideoSettings = {intervalInMs: 50, timeoutInMs: 10000};\n repeatWithTimeout(isVideoPlaying, waitForVideoSettings)\n .then(() => doResolve(videoEl.parentElement))\n .catch(() => reject(new Error('Timeout while waiting for video to play')));\n });\n } else {\n target.appendChild(videoEl);\n doResolve(videoEl);\n }\n\n });\n };\n\n return bindVideoStreamToElement(this._mediaStream, target)\n .then((videoEl) => {\n _.assign(videoEl.style, {\n height: elementHeight,\n width: elementWidth,\n\n 'object-fit': params.fitMode\n });\n\n const subscriber = new TsMediaSubscriber({\n target,\n _session: this._session,\n stream: this,\n _element: videoEl\n });\n\n this.setupDimensionsListener(videoEl, subscriber);\n\n this.subscriber = subscriber;\n\n return subscriber;\n });\n }\n\n /**\n * Unsubscribe from the stream and destroy subscriber's view.\n *\n * Used internally by TsMediaSubscriber.destroy.\n *\n * @method\n *\n * @param { TsMediaSubscriber } subscriber\n *\n * @returns { Promise }\n *\n * @fires SUBSCRIBER_EVENTS#DESTROYED\n *\n * @see TsMediaSubscriber#destroy\n */\n destroySubscriber(subscriber) {\n return new Promise((resolve) => {\n const doResolve = () => {\n subscriber.emit(SUBSCRIBER_EVENTS.DESTROYED);\n resolve();\n };\n\n if (isIE11 && window.WebRTCAdapter) {\n const videoEl = subscriber._element.firstChild;\n window.WebRTCAdapter.unBindVideoElement(videoEl);\n if (videoEl && videoEl.parentNode && videoEl.parentNode.removeChild) {\n videoEl.parentNode.removeChild(videoEl);\n tracer.trace('Video element removed successfully');\n } else {\n tracer.trace('Video element not removed', videoEl, videoEl.parentNode);\n }\n doResolve();\n } else {\n subscriber._element.remove();\n doResolve();\n }\n });\n }\n\n /* eslint-disable no-unused-vars */\n getSnapshot(tsMediaElement, timeout = 0, {format = 'image/png', quality = 0.92, x, y, w, h} = {}) {\n const videoElement = tsMediaElement._element;\n const {videoWidth, videoHeight} = videoElement;\n const crop = !_.isUndefined(x) && !_.isUndefined(y) && !_.isUndefined(w) && !_.isUndefined(h);\n const resize = !crop && (!_.isUndefined(w) || !_.isUndefined(h));\n\n if (resize) {\n if (!h) {\n h = w * (videoHeight / videoWidth);\n } else if (!w) {\n w = h * (videoWidth / videoHeight);\n }\n }\n\n function getImgData() {\n const canvas = document.createElement('canvas');\n const ctx = canvas.getContext('2d');\n\n if (crop) {\n canvas.width = w;\n canvas.height = h;\n\n ctx.drawImage(videoElement, x, y, w, h, 0, 0, w, h);\n } else if (resize) {\n canvas.width = w;\n canvas.height = h;\n\n ctx.drawImage(videoElement, 0, 0, w, h);\n } else {\n canvas.height = videoHeight;\n canvas.width = videoWidth;\n\n ctx.drawImage(videoElement, 0, 0);\n }\n\n return canvas.toDataURL(format, quality);\n }\n\n function getImgDataIE11() {\n return new Promise((resolve) => {\n const canvas = document.createElement('canvas');\n const ctx = canvas.getContext('2d');\n\n if (crop || resize) {\n canvas.width = w;\n canvas.height = h;\n } else {\n canvas.height = videoHeight;\n canvas.width = videoWidth;\n }\n\n function _drawAndRemove(image) {\n if (crop) {\n ctx.drawImage(image, x, y, w, h, 0, 0, w, h);\n } else if (resize) {\n ctx.drawImage(image, 0, 0, w, h);\n } else {\n ctx.drawImage(image, 0, 0, videoWidth, videoHeight);\n }\n\n return canvas.toDataURL(format, quality);\n }\n\n const base64 = videoElement.getFrame();\n const image = new Image();\n\n image.onload = () => resolve(_drawAndRemove(image));\n image.setAttribute('src', 'data:image/bmp;base64,' + base64);\n });\n }\n\n return Promise.resolve(isIE11 ? getImgDataIE11() : getImgData())\n .then((imgData) => {\n if (!imgData || imgData.length < 10) {\n return Promise.reject('Failed to get a snapshot');\n }\n\n return imgData;\n });\n }\n\n /**\n * Get statistics of the media subscription like bytes received.\n *\n * Used internally by TsMediaSubscriber.getStats\n *\n * @method\n *\n * @param { TsMediaSubscriber } subscriber\n *\n * @returns { Promise<ToBeDefined> } stats\n *\n * @see TsMediaSubscriber#getStats\n */\n getStats(subscriber) {\n return new Promise((resolve) => {\n try {\n const pc = this._getPeerConnection();\n\n if (isIE11 || !pc) {\n return resolve();\n }\n\n pc.getStats(this._mediaStream.getVideoTracks()[0])\n .then((reports) => {\n const matches = [];\n\n reports.forEach((report) => {\n if (_.includes(['inbound-rtp', 'ssrc'], report.type)) {\n matches.push(report);\n }\n });\n\n return resolve({\n video: _.head(matches)\n });\n });\n } catch (e) {\n // when this fails, it's most likely due ot no support for the getStats\n // functionality, so we don't want to log this as a recurring error\n resolve();\n }\n });\n }\n\n /* eslint-enable no-unused-vars */\n\n getFullVideoStats() {\n return new Promise((resolve, reject) => {\n try {\n const pc = this._getPeerConnection();\n\n if (!pc) {\n return reject('NO_PEER_CONNECTION');\n }\n\n return resolve(pc.getStats(this._mediaStream.getVideoTracks()[0]));\n\n } catch (e) {\n reject(e);\n }\n });\n }\n\n turnFlashlight(isTorchOn = true) {\n return new Promise((resolve, reject) => {\n if (this._torchDelayTimeOut) {\n return reject('No tourch delay');\n }\n\n if (!navigator || !navigator.mediaDevices) {\n return reject('No mediaDevices');\n }\n\n const track = this._mediaStream.getVideoTracks()[0];\n\n if (!track) {\n return reject('No track');\n }\n if (this._torchOffTimeOut) {\n clearInterval(this._torchOffTimeOut);\n this._torchOffTimeOut = null;\n }\n\n this._torchDelayTimeOut = setTimeout(() => {\n let capatibilitiesAfter = {};\n\n try {\n capatibilitiesAfter = track.getCapabilities();\n } catch (e) {\n return reject('No capabilities');\n }\n\n if (!capatibilitiesAfter.torch) {\n return reject('No tourch capabilities');\n }\n\n return track.applyConstraints({\n advanced: [{\n torch: isTorchOn\n }]\n }).then(() => {\n this._torchDelayTimeOut = null;\n resolve(true);\n }).catch((e) => {\n this._torchDelayTimeOut = null;\n console.error(e);\n reject('Can\\'t turn on the light, please try later!');\n });\n }, TORCH_DELAY);\n });\n }\n\n setAutoLightOffTimer(flashlightTimeout) {\n return new Promise((resolve) => {\n if (!flashlightTimeout) {\n return reject('No timeout');\n }\n\n const track = this._mediaStream.getVideoTracks()[0];\n\n if (!track) {\n return reject('No track');\n }\n\n this._torchOffTimeOut = setTimeout(() => {\n\n if (!track) {\n return reject('No track');\n }\n\n track.applyConstraints({\n advanced: [{\n torch: false\n }]\n }).then(() => {\n this._torchOffTimeOut = null;\n resolve();\n });\n }, flashlightTimeout);\n });\n }\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["oldCode/webrtc/temasys/adapter-loader.js"],"names":["module","exports","window","AdapterJS","require"],"mappings":";;AACA;;AAEAA,OAAOC,OAAP,GAAiB,YAAM;AACnB,QAAI,CAACC,OAAOC,SAAZ,EAAuB;AACnBD,eAAOC,SAAP,GAAmBC,QAAQ,WAAR,CAAnB;AACH;;AAED,WAAOF,OAAOC,SAAd;AACH,CAND","file":"adapter-loader.js","sourcesContent":["\n// TODO try to not to use window, just a var\n\nmodule.exports = () => {\n if (!window.AdapterJS) {\n window.AdapterJS = require('./adapter');\n }\n\n return window.AdapterJS;\n};\n"]}
|