@techsee/techsee-media-service 999.0.5-switch → 999.0.6-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,48 @@ 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, _this.registerTrack).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, registerMediaStream) {
226
+ var regPromises = [];
227
+ if (streamResult.isNew) {
228
+ trace.info('registerStreamResult: stream result from getUserMediaStream:', streamResult.mediaStream);
229
+ streamResult.mediaStream.getTracks().forEach(function (mediaTrack) {
230
+ trace.info('registerStreamResult: stream result from mediaTrack:', mediaTrack);
231
+ var streamType = mediaTrack.kind === 'video' ? MediaConstants_1.KnownMediaStream.USER_VIDEO_STREAM : MediaConstants_1.KnownMediaStream.USER_AUDIO_STREAM;
232
+ var newDedicatedStream = new TechseeMediaStream_1.TechseeMediaStream(mediaTrack, streamType, false);
233
+ regPromises.push(registerMediaStream(newDedicatedStream));
231
234
  });
232
235
  }
233
- return Promise.reject('Something wrong with constraints.');
236
+ return Promise.all(regPromises);
234
237
  };
235
238
  //#endregion Media Streams Management
236
239
  //#region Session Management
@@ -489,24 +492,27 @@ var TechseeMediaServiceBase = /** @class */function () {
489
492
  var newDedicatedStream = new TechseeMediaStream_1.TechseeMediaStream(remoteMediaTrack.mediaTrack, remoteMediaTrack.trackType, true);
490
493
  return this.registerStream(newDedicatedStream);
491
494
  };
492
- TechseeMediaServiceBase.prototype.registerStream = function (mediaStream, update) {
495
+ TechseeMediaServiceBase.prototype.registerTrack = function (mediaStream) {
496
+ var _this = this;
497
+ mediaStream.mediaTrack.onended = function () {
498
+ return _this.unregisterTechseeMediaStream(mediaStream, MediaConstants_1.MediaStreamUnregisterReason.NativeEvent);
499
+ };
500
+ this._registeredStreams.set(mediaStream.streamType, mediaStream);
501
+ trace.info("TechseeMediaStream registered - " + mediaStream.streamType, TechseeMediaStream_1.TechseeMediaStream);
502
+ return this.updateSubscribersWithNewStream(mediaStream).then(function () {
503
+ var eventArgs = { streamType: mediaStream.streamType };
504
+ _this.emitEvent(privateEvents.STREAM_CREATED, eventArgs);
505
+ });
506
+ };
507
+ TechseeMediaServiceBase.prototype.registerStream = function (mediaStream) {
493
508
  var _this = this;
494
509
  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);
510
+ if (currentStream) {
511
+ return this.unregisterTechseeMediaStream(currentStream, MediaConstants_1.MediaStreamUnregisterReason.ReplacingStream).then(function () {
512
+ return _this.registerTrack(mediaStream);
504
513
  });
505
- };
506
- if (currentStream && !update) {
507
- return this.unregisterTechseeMediaStream(currentStream, MediaConstants_1.MediaStreamUnregisterReason.ReplacingStream).then(registerTrack);
508
514
  }
509
- return registerTrack();
515
+ return this.registerTrack(mediaStream);
510
516
  };
511
517
  TechseeMediaServiceBase.prototype.unregisterTechseeMediaStream = function (streamToUnregister, reason) {
512
518
  var _this = this;