@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.
@@ -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.switchCamera = function (localMediaConstraints) {
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
- trace.info('XXXXX: start switch camera');
198
- var constraints = cloneDeep_1.default(localMediaConstraints || window.latestLocalMediaConstraints);
199
- trace.info("XXXXX: switch camera - constraints " + JSON.stringify(constraints));
200
- if (constraints) {
201
- var videoSourceType = constraints.video.videoSourceType;
202
- if (!localMediaConstraints) {
203
- videoSourceType = constraints.video.videoSourceType === MediaConstants_1.LocalVideoSourceType.CAMERA ? MediaConstants_1.LocalVideoSourceType.CAMERA_FORNT : MediaConstants_1.LocalVideoSourceType.CAMERA;
204
- }
205
- trace.info("XXXXX: switch camera - videoSourceType: " + videoSourceType);
206
- constraints.video.videoSourceType = videoSourceType;
207
- // this._localStreamsManager.destroyUserMediaStream();
208
- if (localMediaConstraints) {
209
- this._localStreamsManager.destroyUserMediaStream();
210
- } else {
211
- window.latestUserMediaStream = null;
212
- window.latestLocalMediaConstraints = null;
213
- }
214
- var regPromises_1 = [];
215
- return this._localStreamsManager.getUserMediaStream(constraints).then(function (streamResult) {
216
- var stream = streamResult.mediaStream;
217
- trace.info('XXXXX: new stream: ', stream);
218
- trace.info('XXXXX: beore replaceTrack');
219
- _this._session.instance && _this._session.instance.replaceStreamTracks(stream);
220
- stream && stream.getTracks().forEach(function (track) {
221
- var streamType = track.kind === 'video' ? MediaConstants_1.KnownMediaStream.USER_VIDEO_STREAM : MediaConstants_1.KnownMediaStream.USER_AUDIO_STREAM;
222
- var newDedicatedStream = new TechseeMediaStream_1.TechseeMediaStream(track, streamType, false);
223
- regPromises_1.push(_this.registerStream(newDedicatedStream, true)); //phone
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.reject('Something wrong with constraints.');
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.registerStream = function (mediaStream, update) {
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
- var registerTrack = function registerTrack() {
496
- mediaStream.mediaTrack.onended = function () {
497
- return _this.unregisterTechseeMediaStream(mediaStream, MediaConstants_1.MediaStreamUnregisterReason.NativeEvent);
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;