@techsee/techsee-media-service 999.0.5-switch → 999.0.7-switch
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.map +1 -1
- package/lib/LocalStreamManager.js +1 -0
- package/lib/LocalStreamManager.js.map +1 -1
- package/lib/MediaServiceBase.d.ts +9 -2
- package/lib/MediaServiceBase.d.ts.map +1 -1
- package/lib/MediaServiceBase.js +57 -50
- package/lib/MediaServiceBase.js.map +1 -1
- package/lib/MediaSession/SessionTurn.d.ts.map +1 -1
- package/lib/MediaSession/SessionTurn.js +3 -3
- package/lib/MediaSession/SessionTurn.js.map +1 -1
- package/package.json +1 -1
package/lib/MediaServiceBase.js
CHANGED
|
@@ -192,45 +192,49 @@ var TechseeMediaServiceBase = /** @class */function () {
|
|
|
192
192
|
TechseeMediaServiceBase.prototype.onStreamCreated = function (callback) {
|
|
193
193
|
this.registerEventCallback(privateEvents.STREAM_CREATED, callback);
|
|
194
194
|
};
|
|
195
|
-
TechseeMediaServiceBase.prototype.
|
|
195
|
+
TechseeMediaServiceBase.prototype.getSwitchCameraConstraints = function () {
|
|
196
|
+
var constraints = cloneDeep_1.default(window.latestLocalMediaConstraints);
|
|
197
|
+
if (!constraints) {
|
|
198
|
+
throw new Error('getSwitchCameraConstraints: unexpected use case constraints is null.');
|
|
199
|
+
}
|
|
200
|
+
trace.info('switchCamera - Start switch camera with constraints:', constraints);
|
|
201
|
+
var videoSourceType = constraints.video.videoSourceType === MediaConstants_1.LocalVideoSourceType.CAMERA ? MediaConstants_1.LocalVideoSourceType.CAMERA_FORNT : MediaConstants_1.LocalVideoSourceType.CAMERA;
|
|
202
|
+
trace.info("switchCamera - switch to videoSourceType: " + videoSourceType);
|
|
203
|
+
constraints.video.videoSourceType = videoSourceType;
|
|
204
|
+
return constraints;
|
|
205
|
+
};
|
|
206
|
+
TechseeMediaServiceBase.prototype.switchCamera = function () {
|
|
196
207
|
var _this = this;
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
stream
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
});
|
|
225
|
-
return Promise.all(regPromises_1).then(function () {
|
|
226
|
-
return undefined;
|
|
227
|
-
});
|
|
228
|
-
}).catch(function (err) {
|
|
229
|
-
trace.error('XXXXX: Failed to create new stream for switch: ', err);
|
|
230
|
-
return Promise.reject({ constraints: constraints });
|
|
208
|
+
var constraints = this.getSwitchCameraConstraints();
|
|
209
|
+
this._localStreamsManager.destroyUserMediaStream();
|
|
210
|
+
return this._localStreamsManager.getUserMediaStream(constraints).then(function (streamResult) {
|
|
211
|
+
var stream = streamResult.mediaStream;
|
|
212
|
+
trace.info('switchCamera: new stream: ', stream);
|
|
213
|
+
_this.replaceStreamTracks(stream);
|
|
214
|
+
return _this.registerStreamResult(constraints, streamResult, true).then(function () {
|
|
215
|
+
return { constraints: constraints, streamResult: streamResult };
|
|
216
|
+
});
|
|
217
|
+
}).catch(function (err) {
|
|
218
|
+
trace.error('switchCamera: Failed to switch camera: ', err);
|
|
219
|
+
return Promise.reject('Failed to switch camera.');
|
|
220
|
+
});
|
|
221
|
+
};
|
|
222
|
+
TechseeMediaServiceBase.prototype.replaceStreamTracks = function (mediaStream) {
|
|
223
|
+
this._session.instance && this._session.instance.replaceStreamTracks(mediaStream);
|
|
224
|
+
};
|
|
225
|
+
TechseeMediaServiceBase.prototype.registerStreamResult = function (constraints, streamResult, switchCamera) {
|
|
226
|
+
var _this = this;
|
|
227
|
+
var regPromises = [];
|
|
228
|
+
if (streamResult.isNew) {
|
|
229
|
+
trace.info('registerStreamResult: stream result from getUserMediaStream:', streamResult.mediaStream);
|
|
230
|
+
streamResult.mediaStream.getTracks().forEach(function (mediaTrack) {
|
|
231
|
+
trace.info('registerStreamResult: stream result from mediaTrack:', mediaTrack);
|
|
232
|
+
var streamType = mediaTrack.kind === 'video' ? MediaConstants_1.KnownMediaStream.USER_VIDEO_STREAM : MediaConstants_1.KnownMediaStream.USER_AUDIO_STREAM;
|
|
233
|
+
var newDedicatedStream = new TechseeMediaStream_1.TechseeMediaStream(mediaTrack, streamType, false);
|
|
234
|
+
regPromises.push(switchCamera ? _this.registerTrack(newDedicatedStream) : _this.registerLocalMediaStream(newDedicatedStream));
|
|
231
235
|
});
|
|
232
236
|
}
|
|
233
|
-
return Promise.
|
|
237
|
+
return Promise.all(regPromises);
|
|
234
238
|
};
|
|
235
239
|
//#endregion Media Streams Management
|
|
236
240
|
//#region Session Management
|
|
@@ -489,24 +493,27 @@ var TechseeMediaServiceBase = /** @class */function () {
|
|
|
489
493
|
var newDedicatedStream = new TechseeMediaStream_1.TechseeMediaStream(remoteMediaTrack.mediaTrack, remoteMediaTrack.trackType, true);
|
|
490
494
|
return this.registerStream(newDedicatedStream);
|
|
491
495
|
};
|
|
492
|
-
TechseeMediaServiceBase.prototype.
|
|
496
|
+
TechseeMediaServiceBase.prototype.registerTrack = function (mediaStream) {
|
|
497
|
+
var _this = this;
|
|
498
|
+
mediaStream.mediaTrack.onended = function () {
|
|
499
|
+
return _this.unregisterTechseeMediaStream(mediaStream, MediaConstants_1.MediaStreamUnregisterReason.NativeEvent);
|
|
500
|
+
};
|
|
501
|
+
this._registeredStreams.set(mediaStream.streamType, mediaStream);
|
|
502
|
+
trace.info("TechseeMediaStream registered - " + mediaStream.streamType, TechseeMediaStream_1.TechseeMediaStream);
|
|
503
|
+
return this.updateSubscribersWithNewStream(mediaStream).then(function () {
|
|
504
|
+
var eventArgs = { streamType: mediaStream.streamType };
|
|
505
|
+
_this.emitEvent(privateEvents.STREAM_CREATED, eventArgs);
|
|
506
|
+
});
|
|
507
|
+
};
|
|
508
|
+
TechseeMediaServiceBase.prototype.registerStream = function (mediaStream) {
|
|
493
509
|
var _this = this;
|
|
494
510
|
var currentStream = this._registeredStreams.get(mediaStream.streamType);
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
return _this.
|
|
498
|
-
};
|
|
499
|
-
_this._registeredStreams.set(mediaStream.streamType, mediaStream);
|
|
500
|
-
trace.info("TechseeMediaStream registered - " + mediaStream.streamType, TechseeMediaStream_1.TechseeMediaStream);
|
|
501
|
-
return _this.updateSubscribersWithNewStream(mediaStream).then(function () {
|
|
502
|
-
var eventArgs = { streamType: mediaStream.streamType };
|
|
503
|
-
_this.emitEvent(privateEvents.STREAM_CREATED, eventArgs);
|
|
511
|
+
if (currentStream) {
|
|
512
|
+
return this.unregisterTechseeMediaStream(currentStream, MediaConstants_1.MediaStreamUnregisterReason.ReplacingStream).then(function () {
|
|
513
|
+
return _this.registerTrack(mediaStream);
|
|
504
514
|
});
|
|
505
|
-
};
|
|
506
|
-
if (currentStream && !update) {
|
|
507
|
-
return this.unregisterTechseeMediaStream(currentStream, MediaConstants_1.MediaStreamUnregisterReason.ReplacingStream).then(registerTrack);
|
|
508
515
|
}
|
|
509
|
-
return registerTrack();
|
|
516
|
+
return this.registerTrack(mediaStream);
|
|
510
517
|
};
|
|
511
518
|
TechseeMediaServiceBase.prototype.unregisterTechseeMediaStream = function (streamToUnregister, reason) {
|
|
512
519
|
var _this = this;
|