@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.
- 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 +56 -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,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.
|
|
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
|
-
|
|
221
|
-
|
|
222
|
-
|
|
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.
|
|
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.
|
|
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
|
-
|
|
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);
|
|
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;
|