@techsee/techsee-media-service 10.0.0 → 12.0.0
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/MultiParty/DetectWebRtcService.d.ts +16 -14
- package/lib/MultiParty/DetectWebRtcService.d.ts.map +1 -1
- package/lib/MultiParty/DetectWebRtcService.js +221 -44
- package/lib/MultiParty/DetectWebRtcService.js.map +1 -1
- package/lib/MultiParty/MediaCapabilitiesService.d.ts +6 -12
- package/lib/MultiParty/MediaCapabilitiesService.d.ts.map +1 -1
- package/lib/MultiParty/MediaCapabilitiesService.js +58 -119
- package/lib/MultiParty/MediaCapabilitiesService.js.map +1 -1
- package/lib/MultiParty/MediaCapabilitiesUtils.d.ts.map +1 -1
- package/lib/MultiParty/MediaCapabilitiesUtils.js +2 -2
- package/lib/MultiParty/MediaCapabilitiesUtils.js.map +1 -1
- package/lib/MultiParty/MediaTracer.d.ts +3 -0
- package/lib/MultiParty/MediaTracer.d.ts.map +1 -0
- package/lib/MultiParty/MediaTracer.js +17 -0
- package/lib/MultiParty/MediaTracer.js.map +1 -0
- package/lib/MultiParty/MultiPartyService.d.ts +2 -2
- package/lib/MultiParty/MultiPartyService.d.ts.map +1 -1
- package/lib/MultiParty/MultiPartyServiceFactory.d.ts +1 -1
- package/lib/MultiParty/MultiPartyServiceFactory.d.ts.map +1 -1
- package/lib/MultiParty/MultiPartyServiceFactory.js +2 -2
- package/lib/MultiParty/MultiPartyServiceFactory.js.map +1 -1
- package/lib/MultiParty/MultipartyServiceEventTypes.d.ts +1 -1
- package/lib/MultiParty/MultipartyServiceEventTypes.d.ts.map +1 -1
- package/lib/MultiParty/MultipartyServiceEventTypes.js +13 -13
- package/lib/MultiParty/MultipartyServiceEventTypes.js.map +1 -1
- package/lib/MultiParty/index.d.ts +2 -0
- package/lib/MultiParty/index.d.ts.map +1 -1
- package/lib/MultiParty/index.js +4 -0
- package/lib/MultiParty/index.js.map +1 -1
- package/lib/MultiParty/opentok/OpentokMultiPartyService.d.ts +6 -18
- package/lib/MultiParty/opentok/OpentokMultiPartyService.d.ts.map +1 -1
- package/lib/MultiParty/opentok/OpentokMultiPartyService.js +72 -77
- package/lib/MultiParty/opentok/OpentokMultiPartyService.js.map +1 -1
- package/lib/MultiParty/opentok/OpentokPublisher.d.ts +14 -4
- package/lib/MultiParty/opentok/OpentokPublisher.d.ts.map +1 -1
- package/lib/MultiParty/opentok/OpentokPublisher.js +49 -84
- package/lib/MultiParty/opentok/OpentokPublisher.js.map +1 -1
- package/lib/MultiParty/opentok/OpentokPublisherEventMapper.d.ts +18 -0
- package/lib/MultiParty/opentok/OpentokPublisherEventMapper.d.ts.map +1 -0
- package/lib/MultiParty/opentok/OpentokPublisherEventMapper.js +66 -0
- package/lib/MultiParty/opentok/OpentokPublisherEventMapper.js.map +1 -0
- package/lib/MultiParty/opentok/trace.d.ts.map +1 -1
- package/lib/MultiParty/opentok/trace.js +2 -2
- package/lib/MultiParty/opentok/trace.js.map +1 -1
- package/lib/MultiParty/{Contracts.d.ts → types.d.ts} +8 -1
- package/lib/MultiParty/types.d.ts.map +1 -0
- package/lib/MultiParty/{Contracts.js → types.js} +1 -1
- package/lib/MultiParty/types.js.map +1 -0
- package/lib/MultiParty/utils.d.ts +3 -0
- package/lib/MultiParty/utils.d.ts.map +1 -0
- package/lib/MultiParty/utils.js +21 -0
- package/lib/MultiParty/utils.js.map +1 -0
- package/package.json +7 -5
- package/lib/MultiParty/Contracts.d.ts.map +0 -1
- package/lib/MultiParty/Contracts.js.map +0 -1
- package/lib/MultiParty/opentok/OpentokUtils.d.ts +0 -2
- package/lib/MultiParty/opentok/OpentokUtils.d.ts.map +0 -1
- package/lib/MultiParty/opentok/OpentokUtils.js +0 -17
- package/lib/MultiParty/opentok/OpentokUtils.js.map +0 -1
- package/lib/oldCode/constants.js +0 -25
- package/lib/oldCode/constants.js.map +0 -1
- package/lib/oldCode/event-emitter.js +0 -62
- package/lib/oldCode/event-emitter.js.map +0 -1
- package/lib/oldCode/index.js +0 -60
- package/lib/oldCode/index.js.map +0 -1
- package/lib/oldCode/opentok/session.js +0 -335
- package/lib/oldCode/opentok/session.js.map +0 -1
- package/lib/oldCode/opentok/stream.js +0 -324
- package/lib/oldCode/opentok/stream.js.map +0 -1
- package/lib/oldCode/publisher.js +0 -168
- package/lib/oldCode/publisher.js.map +0 -1
- package/lib/oldCode/service.js +0 -417
- package/lib/oldCode/service.js.map +0 -1
- package/lib/oldCode/session.js +0 -132
- package/lib/oldCode/session.js.map +0 -1
- package/lib/oldCode/stream.js +0 -223
- package/lib/oldCode/stream.js.map +0 -1
- package/lib/oldCode/subscriber.js +0 -115
- package/lib/oldCode/subscriber.js.map +0 -1
- package/lib/oldCode/tracer.d.ts +0 -36
- package/lib/oldCode/tracer.d.ts.map +0 -1
- package/lib/oldCode/tracer.js +0 -202
- package/lib/oldCode/tracer.js.map +0 -1
- package/lib/oldCode/utils/ImageFixer.d.ts +0 -1
- package/lib/oldCode/utils/ImageFixer.d.ts.map +0 -1
- package/lib/oldCode/utils/ImageFixer.js +0 -83
- package/lib/oldCode/utils/ImageFixer.js.map +0 -1
- package/lib/oldCode/webrtc/constants.js +0 -106
- package/lib/oldCode/webrtc/constants.js.map +0 -1
- package/lib/oldCode/webrtc/helper.js +0 -225
- package/lib/oldCode/webrtc/helper.js.map +0 -1
- package/lib/oldCode/webrtc/session-kms.js +0 -573
- package/lib/oldCode/webrtc/session-kms.js.map +0 -1
- package/lib/oldCode/webrtc/session-loopback.js +0 -354
- package/lib/oldCode/webrtc/session-loopback.js.map +0 -1
- package/lib/oldCode/webrtc/session-turn.js +0 -927
- package/lib/oldCode/webrtc/session-turn.js.map +0 -1
- package/lib/oldCode/webrtc/session-turn.v2.js +0 -592
- package/lib/oldCode/webrtc/session-turn.v2.js.map +0 -1
- package/lib/oldCode/webrtc/session.js +0 -58
- package/lib/oldCode/webrtc/session.js.map +0 -1
- package/lib/oldCode/webrtc/stream.js +0 -696
- package/lib/oldCode/webrtc/stream.js.map +0 -1
- package/lib/oldCode/webrtc/temasys/adapter-loader.js +0 -11
- package/lib/oldCode/webrtc/temasys/adapter-loader.js.map +0 -1
- package/lib/oldCode/webrtc/temasys/adapter.js +0 -5933
- package/lib/oldCode/webrtc/temasys/adapter.js.map +0 -1
- package/lib/oldCode/webrtc/webrtc-ie-shim.js +0 -3437
- package/lib/oldCode/webrtc/webrtc-ie-shim.js.map +0 -1
package/lib/oldCode/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["oldCode/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AAKA;;AAIA;;AAIA;;AAIA;;AAIA","sourcesContent":["export {\n TsMediaService,\n EVENTS as SERVICE_EVENTS,\n} from './service';\n\nexport {\n EVENTS as SESSION_EVENTS,\n} from './session';\n\nexport {\n EVENTS as STREAM_EVENTS,\n} from './stream';\n\nexport {\n EVENTS as PUBLISHER_EVENTS,\n} from './publisher';\n\nexport {\n EVENTS as SUBSCRIBER_EVENTS,\n} from './subscriber';\n\nexport {\n RawQos\n} from '../qos/raw-qos';\n"],"file":"index.js"}
|
|
@@ -1,335 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
exports.TsOpenTokSession = void 0;
|
|
9
|
-
|
|
10
|
-
var _session = require("../session");
|
|
11
|
-
|
|
12
|
-
var _publisher = require("../publisher");
|
|
13
|
-
|
|
14
|
-
var _subscriber = require("../subscriber");
|
|
15
|
-
|
|
16
|
-
var _stream = require("./stream");
|
|
17
|
-
|
|
18
|
-
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
19
|
-
|
|
20
|
-
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
|
21
|
-
|
|
22
|
-
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
|
23
|
-
|
|
24
|
-
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
|
25
|
-
|
|
26
|
-
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
|
27
|
-
|
|
28
|
-
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
29
|
-
|
|
30
|
-
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
|
|
31
|
-
|
|
32
|
-
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
|
33
|
-
|
|
34
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
35
|
-
|
|
36
|
-
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
37
|
-
|
|
38
|
-
var TsOpenTokSession = /*#__PURE__*/function (_TsMediaSession) {
|
|
39
|
-
_inherits(TsOpenTokSession, _TsMediaSession);
|
|
40
|
-
|
|
41
|
-
var _super = _createSuper(TsOpenTokSession);
|
|
42
|
-
|
|
43
|
-
function TsOpenTokSession(_ref) {
|
|
44
|
-
var _this;
|
|
45
|
-
|
|
46
|
-
var credentials = _ref.credentials;
|
|
47
|
-
|
|
48
|
-
_classCallCheck(this, TsOpenTokSession);
|
|
49
|
-
|
|
50
|
-
_this = _super.call(this);
|
|
51
|
-
_this._credentials = credentials;
|
|
52
|
-
_this._session = OT.initSession(credentials.apiKey, credentials.sessionId);
|
|
53
|
-
return _this;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
_createClass(TsOpenTokSession, [{
|
|
57
|
-
key: "id",
|
|
58
|
-
get: function get() {
|
|
59
|
-
return this._session && this._session.sessionId;
|
|
60
|
-
}
|
|
61
|
-
}, {
|
|
62
|
-
key: "_disconnectIfAlreadyConnected",
|
|
63
|
-
value: function _disconnectIfAlreadyConnected() {
|
|
64
|
-
if (!this._session.isConnected()) {
|
|
65
|
-
return Promise.resolve();
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
return this.disconnect(true);
|
|
69
|
-
}
|
|
70
|
-
}, {
|
|
71
|
-
key: "connect",
|
|
72
|
-
value: function connect() {
|
|
73
|
-
var _this2 = this;
|
|
74
|
-
|
|
75
|
-
return this._disconnectIfAlreadyConnected().then(function () {
|
|
76
|
-
return new Promise(function (resolve, reject) {
|
|
77
|
-
_this2._session.on('sessionConnected', function () {
|
|
78
|
-
_this2.emit(_session.EVENTS.CONNECTED);
|
|
79
|
-
});
|
|
80
|
-
|
|
81
|
-
_this2._session.on('sessionDisconnected', function (e) {
|
|
82
|
-
_this2.emit(_session.EVENTS.DISCONNECTED, e);
|
|
83
|
-
});
|
|
84
|
-
|
|
85
|
-
_this2._session.on('streamCreated', function (e) {
|
|
86
|
-
_this2.emit(_session.EVENTS.STREAM_CREATED, new _stream.TsOpenTokStream(_this2, e.stream));
|
|
87
|
-
});
|
|
88
|
-
|
|
89
|
-
_this2._session.on('streamDestroyed', function (e) {
|
|
90
|
-
_this2._streams["delete"](e.stream.id);
|
|
91
|
-
|
|
92
|
-
_this2.emit(_session.EVENTS.STREAM_DESTROYED, e);
|
|
93
|
-
});
|
|
94
|
-
|
|
95
|
-
_this2._session.on('streamPropertyChanged', function (e) {
|
|
96
|
-
if (e.changedProperty === 'videoDimensions') {
|
|
97
|
-
return;
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
var stream = _this2._streams.get(e.stream.id);
|
|
101
|
-
|
|
102
|
-
var newEvent = {
|
|
103
|
-
stream: stream,
|
|
104
|
-
property: e.changedProperty,
|
|
105
|
-
value: e.newValue
|
|
106
|
-
};
|
|
107
|
-
|
|
108
|
-
_this2.emit(_session.EVENTS.STREAM_PROPERTY_CHANGED, newEvent);
|
|
109
|
-
});
|
|
110
|
-
|
|
111
|
-
_this2._session.connect(_this2._credentials.token, function (error) {
|
|
112
|
-
if (error) {
|
|
113
|
-
_this2._session.off();
|
|
114
|
-
|
|
115
|
-
return reject(error);
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
return resolve();
|
|
119
|
-
});
|
|
120
|
-
});
|
|
121
|
-
});
|
|
122
|
-
}
|
|
123
|
-
}, {
|
|
124
|
-
key: "disconnect",
|
|
125
|
-
value: function disconnect(keepSession) {
|
|
126
|
-
var _this3 = this;
|
|
127
|
-
|
|
128
|
-
return new Promise(function (resolve) {
|
|
129
|
-
_this3._session.off();
|
|
130
|
-
|
|
131
|
-
var sessionFinalized = false;
|
|
132
|
-
|
|
133
|
-
var finalizeSession = function finalizeSession(event) {
|
|
134
|
-
if (sessionFinalized) {
|
|
135
|
-
return;
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
sessionFinalized = true;
|
|
139
|
-
|
|
140
|
-
if (!keepSession) {
|
|
141
|
-
_this3._session = null;
|
|
142
|
-
|
|
143
|
-
_this3.emit(_session.EVENTS.DISCONNECTED);
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
resolve(event);
|
|
147
|
-
};
|
|
148
|
-
|
|
149
|
-
_this3._session.once('sessionDisconnected', function (event) {
|
|
150
|
-
return finalizeSession(event);
|
|
151
|
-
});
|
|
152
|
-
|
|
153
|
-
setTimeout(function () {
|
|
154
|
-
return finalizeSession({
|
|
155
|
-
reason: 'clientDisconnectedTimeout'
|
|
156
|
-
});
|
|
157
|
-
}, 5000);
|
|
158
|
-
|
|
159
|
-
_this3._session.disconnect();
|
|
160
|
-
});
|
|
161
|
-
}
|
|
162
|
-
}, {
|
|
163
|
-
key: "createPublisher",
|
|
164
|
-
value: function createPublisher(target, params) {
|
|
165
|
-
var _this4 = this;
|
|
166
|
-
|
|
167
|
-
if (!params) {
|
|
168
|
-
params = target;
|
|
169
|
-
target = null;
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
var otparams = {
|
|
173
|
-
videoSource: null,
|
|
174
|
-
audioSource: null,
|
|
175
|
-
showControls: false,
|
|
176
|
-
name: params.name,
|
|
177
|
-
publishAudio: false,
|
|
178
|
-
publishVideo: false,
|
|
179
|
-
constraints: {
|
|
180
|
-
video: {
|
|
181
|
-
facingMode: 'environment'
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
};
|
|
185
|
-
|
|
186
|
-
if (params.videoDevice) {
|
|
187
|
-
_.assign(otparams, {
|
|
188
|
-
publishVideo: true,
|
|
189
|
-
videoSource: params.videoDevice
|
|
190
|
-
});
|
|
191
|
-
|
|
192
|
-
otparams.constraints.video.deviceId = params.videoDevice;
|
|
193
|
-
|
|
194
|
-
if (params.videoParams) {
|
|
195
|
-
_.assign(otparams, params.videoParams);
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
if (params.audioDevice) {
|
|
200
|
-
_.assign(otparams, {
|
|
201
|
-
publishAudio: true,
|
|
202
|
-
audioSource: params.audioDevice
|
|
203
|
-
});
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
return new Promise(function (resolve, reject) {
|
|
207
|
-
var otpublisher = OT.initPublisher(target, otparams, function (error) {
|
|
208
|
-
if (error) {
|
|
209
|
-
return reject(error);
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
var publisher = new _publisher.TsMediaPublisher(_this4, {
|
|
213
|
-
_otpublisher: otpublisher
|
|
214
|
-
});
|
|
215
|
-
return resolve(publisher);
|
|
216
|
-
});
|
|
217
|
-
});
|
|
218
|
-
}
|
|
219
|
-
}, {
|
|
220
|
-
key: "publish",
|
|
221
|
-
value: function publish(publisher) {
|
|
222
|
-
var _this5 = this;
|
|
223
|
-
|
|
224
|
-
return new Promise(function (resolve, reject) {
|
|
225
|
-
publisher._otpublisher.once('streamCreated', function (event) {
|
|
226
|
-
var stream = new _stream.TsOpenTokStream(_this5, event.stream);
|
|
227
|
-
publisher.stream = stream;
|
|
228
|
-
stream.publisher = publisher;
|
|
229
|
-
stream.remote = false;
|
|
230
|
-
publisher.videoWidth = publisher._otpublisher.videoWidth();
|
|
231
|
-
publisher.videoHeight = publisher._otpublisher.videoHeight();
|
|
232
|
-
publisher.emit(_publisher.EVENTS.STREAM_CREATED, stream);
|
|
233
|
-
var video = stream.getVideoElement(publisher._otpublisher.element)[0];
|
|
234
|
-
stream.setupDimensionsListener(video);
|
|
235
|
-
return resolve();
|
|
236
|
-
});
|
|
237
|
-
|
|
238
|
-
publisher._otpublisher.once('destroyed', function () {
|
|
239
|
-
publisher.emit(_publisher.EVENTS.DESTROYED);
|
|
240
|
-
|
|
241
|
-
publisher._otpublisher.off();
|
|
242
|
-
|
|
243
|
-
publisher._otpublisher = null;
|
|
244
|
-
});
|
|
245
|
-
|
|
246
|
-
_this5._session.publish(publisher._otpublisher, function (error) {
|
|
247
|
-
if (error) {
|
|
248
|
-
return reject(error);
|
|
249
|
-
}
|
|
250
|
-
});
|
|
251
|
-
});
|
|
252
|
-
}
|
|
253
|
-
}, {
|
|
254
|
-
key: "destroyPublisher",
|
|
255
|
-
value: function destroyPublisher(publisher) {
|
|
256
|
-
return new Promise(function (resolve) {
|
|
257
|
-
publisher._otpublisher.off();
|
|
258
|
-
|
|
259
|
-
publisher._otpublisher.once('destroyed', function () {
|
|
260
|
-
publisher._otpublisher = null;
|
|
261
|
-
resolve();
|
|
262
|
-
});
|
|
263
|
-
|
|
264
|
-
publisher._otpublisher.destroy();
|
|
265
|
-
});
|
|
266
|
-
}
|
|
267
|
-
}, {
|
|
268
|
-
key: "createSubscriber",
|
|
269
|
-
value: function createSubscriber(stream, target, params) {
|
|
270
|
-
var _this6 = this;
|
|
271
|
-
|
|
272
|
-
return new Promise(function (resolve, reject) {
|
|
273
|
-
if (stream._otstream.destroyed) {
|
|
274
|
-
return reject(stream._otstream.destroyedReason);
|
|
275
|
-
}
|
|
276
|
-
|
|
277
|
-
var finish = _.once(function (err, res) {
|
|
278
|
-
if (err) {
|
|
279
|
-
return reject(err);
|
|
280
|
-
}
|
|
281
|
-
|
|
282
|
-
return resolve(res);
|
|
283
|
-
});
|
|
284
|
-
|
|
285
|
-
function onDestroy(event) {
|
|
286
|
-
if (event.stream.id === stream._otstream.id) {
|
|
287
|
-
finish(event.stream.destroyedReason);
|
|
288
|
-
}
|
|
289
|
-
}
|
|
290
|
-
|
|
291
|
-
_this6._session.on('streamDestroyed', onDestroy);
|
|
292
|
-
|
|
293
|
-
var otsubscriber = _this6._session.subscribe(stream._otstream, target, params, function (error) {
|
|
294
|
-
_this6._session.off('streamDestroyed', onDestroy);
|
|
295
|
-
|
|
296
|
-
if (error) {
|
|
297
|
-
return finish(error);
|
|
298
|
-
}
|
|
299
|
-
|
|
300
|
-
var subscriber = new _subscriber.TsMediaSubscriber({
|
|
301
|
-
stream: stream,
|
|
302
|
-
_otsubscriber: otsubscriber,
|
|
303
|
-
_session: _this6
|
|
304
|
-
});
|
|
305
|
-
return finish(null, subscriber);
|
|
306
|
-
});
|
|
307
|
-
});
|
|
308
|
-
}
|
|
309
|
-
}, {
|
|
310
|
-
key: "destroySubscriber",
|
|
311
|
-
value: function destroySubscriber(subscriber) {
|
|
312
|
-
if (!subscriber._otsubscriber || !(subscriber._otsubscriber.element || subscriber._otsubscriber.stream)) {
|
|
313
|
-
return Promise.resolve();
|
|
314
|
-
}
|
|
315
|
-
|
|
316
|
-
return new Promise(function (resolve) {
|
|
317
|
-
subscriber._otsubscriber.off();
|
|
318
|
-
|
|
319
|
-
subscriber._otsubscriber.on('destroyed', function () {
|
|
320
|
-
subscriber._otsubscriber = null;
|
|
321
|
-
return resolve();
|
|
322
|
-
});
|
|
323
|
-
|
|
324
|
-
subscriber._otsubscriber.destroy();
|
|
325
|
-
}).timeout(5000)["catch"](function () {
|
|
326
|
-
return null;
|
|
327
|
-
});
|
|
328
|
-
}
|
|
329
|
-
}]);
|
|
330
|
-
|
|
331
|
-
return TsOpenTokSession;
|
|
332
|
-
}(_session.TsMediaSession);
|
|
333
|
-
|
|
334
|
-
exports.TsOpenTokSession = TsOpenTokSession;
|
|
335
|
-
//# sourceMappingURL=session.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["oldCode/opentok/session.js"],"names":["TsOpenTokSession","credentials","_credentials","_session","OT","initSession","apiKey","sessionId","isConnected","Promise","resolve","disconnect","_disconnectIfAlreadyConnected","then","reject","on","emit","EVENTS","CONNECTED","e","DISCONNECTED","STREAM_CREATED","TsOpenTokStream","stream","_streams","id","STREAM_DESTROYED","changedProperty","get","newEvent","property","value","newValue","STREAM_PROPERTY_CHANGED","connect","token","error","off","keepSession","sessionFinalized","finalizeSession","event","once","setTimeout","reason","target","params","otparams","videoSource","audioSource","showControls","name","publishAudio","publishVideo","constraints","video","facingMode","videoDevice","_","assign","deviceId","videoParams","audioDevice","otpublisher","initPublisher","publisher","TsMediaPublisher","_otpublisher","remote","videoWidth","videoHeight","PUBLISHER_EVENTS","getVideoElement","element","setupDimensionsListener","DESTROYED","publish","destroy","_otstream","destroyed","destroyedReason","finish","err","res","onDestroy","otsubscriber","subscribe","subscriber","TsMediaSubscriber","_otsubscriber","timeout","TsMediaSession"],"mappings":"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","sourcesContent":["import {\n EVENTS,\n TsMediaSession,\n} from '../session';\n\nimport {\n EVENTS as PUBLISHER_EVENTS,\n TsMediaPublisher,\n} from '../publisher';\n\nimport {\n TsMediaSubscriber,\n} from '../subscriber';\n\nimport {\n TsOpenTokStream,\n} from './stream';\n\nexport class TsOpenTokSession extends TsMediaSession {\n constructor({credentials}) {\n super();\n\n this._credentials = credentials;\n this._session = OT.initSession(\n credentials.apiKey,\n credentials.sessionId\n );\n }\n\n get id() {\n return this._session && this._session.sessionId;\n }\n\n _disconnectIfAlreadyConnected() {\n if (!this._session.isConnected()) {\n return Promise.resolve();\n }\n\n return this.disconnect(true);\n }\n\n connect() {\n return this._disconnectIfAlreadyConnected()\n .then(() => new Promise((resolve, reject) => {\n this._session.on('sessionConnected', () => {\n this.emit(EVENTS.CONNECTED);\n });\n this._session.on('sessionDisconnected', (e) => {\n this.emit(EVENTS.DISCONNECTED, e);\n });\n\n this._session.on('streamCreated', (e) => {\n this.emit(EVENTS.STREAM_CREATED, new TsOpenTokStream(this, e.stream));\n });\n\n this._session.on('streamDestroyed', (e) => {\n this._streams.delete(e.stream.id);\n\n this.emit(EVENTS.STREAM_DESTROYED, e);\n });\n this._session.on('streamPropertyChanged', (e) => {\n if (e.changedProperty === 'videoDimensions') {\n return;\n }\n\n const stream = this._streams.get(e.stream.id);\n\n const newEvent = {\n stream,\n property: e.changedProperty,\n value: e.newValue,\n };\n\n this.emit(EVENTS.STREAM_PROPERTY_CHANGED, newEvent);\n });\n\n\n this._session.connect(this._credentials.token, (error) => {\n if (error) {\n this._session.off();\n\n return reject(error);\n }\n\n return resolve();\n });\n }));\n }\n\n disconnect(keepSession) {\n return new Promise((resolve) => {\n this._session.off();\n\n let sessionFinalized = false;\n\n const finalizeSession = (event) => {\n if (sessionFinalized) {\n return;\n }\n\n sessionFinalized = true;\n\n if (!keepSession) {\n this._session = null;\n\n this.emit(EVENTS.DISCONNECTED);\n }\n\n resolve(event);\n };\n\n this._session.once('sessionDisconnected', (event) => finalizeSession(event));\n\n setTimeout(() => finalizeSession({reason: 'clientDisconnectedTimeout'}), 5000);\n\n this._session.disconnect();\n });\n }\n\n createPublisher(target, params) {\n if (!params) {\n params = target;\n target = null;\n }\n\n const otparams = {\n videoSource: null,\n audioSource: null,\n showControls: false,\n name: params.name,\n publishAudio: false,\n publishVideo: false,\n constraints: {\n video: {\n facingMode: 'environment'\n }\n }\n };\n\n if (params.videoDevice) {\n _.assign(otparams, {\n publishVideo: true,\n videoSource: params.videoDevice,\n });\n\n otparams.constraints.video.deviceId = params.videoDevice;\n\n if (params.videoParams) {\n _.assign(otparams, params.videoParams);\n }\n }\n\n if (params.audioDevice) {\n _.assign(otparams, {\n publishAudio: true,\n audioSource: params.audioDevice,\n });\n }\n\n return new Promise((resolve, reject) => {\n const otpublisher = OT.initPublisher(target, otparams, (error) => {\n if (error) {\n return reject(error);\n }\n\n const publisher = new TsMediaPublisher(this, {\n _otpublisher: otpublisher,\n });\n\n return resolve(publisher);\n });\n });\n }\n\n publish(publisher) {\n return new Promise((resolve, reject) => {\n publisher._otpublisher.once('streamCreated', (event) => {\n const stream = new TsOpenTokStream(this, event.stream);\n\n publisher.stream = stream;\n stream.publisher = publisher;\n stream.remote = false;\n\n publisher.videoWidth = publisher._otpublisher.videoWidth();\n publisher.videoHeight = publisher._otpublisher.videoHeight();\n\n publisher.emit(PUBLISHER_EVENTS.STREAM_CREATED, stream);\n\n const video = stream.getVideoElement(publisher._otpublisher.element)[0];\n\n stream.setupDimensionsListener(video);\n\n return resolve();\n });\n\n publisher._otpublisher.once('destroyed', () => {\n publisher.emit(PUBLISHER_EVENTS.DESTROYED);\n\n publisher._otpublisher.off();\n publisher._otpublisher = null;\n });\n\n this._session.publish(publisher._otpublisher, (error) => {\n if (error) {\n return reject(error);\n }\n });\n });\n }\n\n destroyPublisher(publisher) {\n return new Promise((resolve) => {\n publisher._otpublisher.off();\n\n publisher._otpublisher.once('destroyed', () => {\n publisher._otpublisher = null;\n\n resolve();\n });\n\n publisher._otpublisher.destroy();\n });\n }\n\n createSubscriber(stream, target, params) {\n return new Promise((resolve, reject) => {\n if (stream._otstream.destroyed) {\n return reject(stream._otstream.destroyedReason);\n }\n\n const finish = _.once((err, res) => {\n if (err) {\n return reject(err);\n }\n\n return resolve(res);\n });\n\n function onDestroy(event) {\n if (event.stream.id === stream._otstream.id) {\n finish(event.stream.destroyedReason);\n }\n }\n\n this._session.on('streamDestroyed', onDestroy);\n const otsubscriber = this._session.subscribe(\n stream._otstream, target, params,\n (error) => {\n this._session.off('streamDestroyed', onDestroy);\n\n if (error) {\n return finish(error);\n }\n\n const subscriber = new TsMediaSubscriber({\n stream,\n _otsubscriber: otsubscriber,\n _session: this,\n });\n\n return finish(null, subscriber);\n }\n );\n });\n }\n\n destroySubscriber(subscriber) {\n if (!subscriber._otsubscriber || !(subscriber._otsubscriber.element || subscriber._otsubscriber.stream)) {\n return Promise.resolve();\n }\n\n return new Promise((resolve) => {\n subscriber._otsubscriber.off();\n\n subscriber._otsubscriber.on('destroyed', () => {\n subscriber._otsubscriber = null;\n\n return resolve();\n });\n\n subscriber._otsubscriber.destroy();\n })\n .timeout(5000)\n .catch(() => null);\n }\n}\n\n"],"file":"session.js"}
|