@techsee/techsee-media-service 999.0.4-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 +2 -1
- 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 +55 -58
- 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
|
@@ -30,7 +30,6 @@ var MediaDomUtils_1 = require("./MediaUtils/MediaDomUtils");
|
|
|
30
30
|
var Compatibility_1 = require("./MediaUtils/Compatibility");
|
|
31
31
|
var SessionOpentok_1 = require("./MediaSession/SessionOpentok");
|
|
32
32
|
var MediaConstants_1 = require("./MediaConstants");
|
|
33
|
-
var get_1 = __importDefault(require("lodash/get"));
|
|
34
33
|
var guards_1 = require("@techsee/techsee-common/lib/core/guards");
|
|
35
34
|
var MediaTracer_1 = require("./MediaUtils/MediaTracer");
|
|
36
35
|
var trace = MediaTracer_1.getMediaTracer('MediaServiceBase');
|
|
@@ -193,53 +192,48 @@ var TechseeMediaServiceBase = /** @class */function () {
|
|
|
193
192
|
TechseeMediaServiceBase.prototype.onStreamCreated = function (callback) {
|
|
194
193
|
this.registerEventCallback(privateEvents.STREAM_CREATED, callback);
|
|
195
194
|
};
|
|
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
|
+
};
|
|
196
206
|
TechseeMediaServiceBase.prototype.switchCamera = function () {
|
|
197
207
|
var _this = this;
|
|
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
|
-
|
|
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));
|
|
224
234
|
});
|
|
225
|
-
// return this._localStreamsManager.getUserMediaStream(constraints)
|
|
226
|
-
// .then((streamResult: MediaRequestSuccessResult) => {
|
|
227
|
-
// trace.info(`XXXXX: switch acmera- success create new stream: ${JSON.stringify(streamResult)}`, streamResult);
|
|
228
|
-
// const stream = streamResult.mediaStream;
|
|
229
|
-
// trace.info('XXXXX: switch camera- before replacing trace');
|
|
230
|
-
// this._session && this._session.instance && this._session.instance.replaceStreamTracks(stream);
|
|
231
|
-
// trace.info('XXXXX: switch camera- after replacing trace');
|
|
232
|
-
// stream && stream.getTracks().forEach((track) => {
|
|
233
|
-
// const newDedicatedStream = new TechseeMediaStream(track, KnownMediaStream.USER_VIDEO_STREAM, false);
|
|
234
|
-
// trace.info(`XXXXX: switch camera- set register stream ${newDedicatedStream.streamType}`);
|
|
235
|
-
// this._registeredStreams.set(newDedicatedStream.streamType, newDedicatedStream);
|
|
236
|
-
// });
|
|
237
|
-
// })
|
|
238
|
-
// .catch((err) => {
|
|
239
|
-
// trace.info(`XXXXX: switch acmera- error: ${err}`, err);
|
|
240
|
-
// });
|
|
241
235
|
}
|
|
242
|
-
return Promise.
|
|
236
|
+
return Promise.all(regPromises);
|
|
243
237
|
};
|
|
244
238
|
//#endregion Media Streams Management
|
|
245
239
|
//#region Session Management
|
|
@@ -498,24 +492,27 @@ var TechseeMediaServiceBase = /** @class */function () {
|
|
|
498
492
|
var newDedicatedStream = new TechseeMediaStream_1.TechseeMediaStream(remoteMediaTrack.mediaTrack, remoteMediaTrack.trackType, true);
|
|
499
493
|
return this.registerStream(newDedicatedStream);
|
|
500
494
|
};
|
|
501
|
-
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) {
|
|
502
508
|
var _this = this;
|
|
503
509
|
var currentStream = this._registeredStreams.get(mediaStream.streamType);
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
return _this.
|
|
507
|
-
};
|
|
508
|
-
_this._registeredStreams.set(mediaStream.streamType, mediaStream);
|
|
509
|
-
trace.info("TechseeMediaStream registered - " + mediaStream.streamType, TechseeMediaStream_1.TechseeMediaStream);
|
|
510
|
-
return _this.updateSubscribersWithNewStream(mediaStream).then(function () {
|
|
511
|
-
var eventArgs = { streamType: mediaStream.streamType };
|
|
512
|
-
_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);
|
|
513
513
|
});
|
|
514
|
-
};
|
|
515
|
-
if (currentStream && !update) {
|
|
516
|
-
return this.unregisterTechseeMediaStream(currentStream, MediaConstants_1.MediaStreamUnregisterReason.ReplacingStream).then(registerTrack);
|
|
517
514
|
}
|
|
518
|
-
return registerTrack();
|
|
515
|
+
return this.registerTrack(mediaStream);
|
|
519
516
|
};
|
|
520
517
|
TechseeMediaServiceBase.prototype.unregisterTechseeMediaStream = function (streamToUnregister, reason) {
|
|
521
518
|
var _this = this;
|