@techsee/techsee-media-service 999.0.2-switch → 999.0.3-alpha
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 +12 -0
- package/lib/LocalStreamManager.d.ts.map +1 -1
- package/lib/LocalStreamManager.js +440 -283
- package/lib/LocalStreamManager.js.map +1 -1
- package/lib/MediaConstants.d.ts +14 -4
- package/lib/MediaConstants.d.ts.map +1 -1
- package/lib/MediaConstants.js +83 -38
- package/lib/MediaConstants.js.map +1 -1
- package/lib/MediaContracts.d.ts +17 -14
- package/lib/MediaContracts.d.ts.map +1 -1
- package/lib/MediaContracts.js +3 -3
- package/lib/MediaContracts.js.map +1 -1
- package/lib/MediaPublisher.d.ts +3 -3
- package/lib/MediaPublisher.d.ts.map +1 -1
- package/lib/MediaPublisher.js +46 -35
- package/lib/MediaPublisher.js.map +1 -1
- package/lib/MediaServiceBase.d.ts +21 -7
- package/lib/MediaServiceBase.d.ts.map +1 -1
- package/lib/MediaServiceBase.js +924 -586
- package/lib/MediaServiceBase.js.map +1 -1
- package/lib/MediaSession/MediaServer.d.ts +45 -0
- package/lib/MediaSession/MediaServer.d.ts.map +1 -0
- package/lib/MediaSession/MediaServer.js +538 -0
- package/lib/MediaSession/MediaServer.js.map +1 -0
- package/lib/MediaSession/MediaSessionBase.d.ts +10 -1
- package/lib/MediaSession/MediaSessionBase.d.ts.map +1 -1
- package/lib/MediaSession/MediaSessionBase.js +128 -66
- package/lib/MediaSession/MediaSessionBase.js.map +1 -1
- package/lib/MediaSession/SessionOpentok.d.ts +11 -9
- package/lib/MediaSession/SessionOpentok.d.ts.map +1 -1
- package/lib/MediaSession/SessionOpentok.js +500 -352
- package/lib/MediaSession/SessionOpentok.js.map +1 -1
- package/lib/MediaSession/SessionTurn.d.ts +4 -1
- package/lib/MediaSession/SessionTurn.d.ts.map +1 -1
- package/lib/MediaSession/SessionTurn.js +611 -422
- package/lib/MediaSession/SessionTurn.js.map +1 -1
- package/lib/MediaSession/TurnConstants.js +31 -30
- package/lib/MediaSession/TurnConstants.js.map +1 -1
- package/lib/MediaSubscriber.d.ts +11 -11
- package/lib/MediaSubscriber.d.ts.map +1 -1
- package/lib/MediaSubscriber.js +236 -192
- package/lib/MediaSubscriber.js.map +1 -1
- package/lib/MediaUtils/Compatibility.d.ts +2 -1
- package/lib/MediaUtils/Compatibility.d.ts.map +1 -1
- package/lib/MediaUtils/Compatibility.js +130 -85
- package/lib/MediaUtils/Compatibility.js.map +1 -1
- package/lib/MediaUtils/MediaDomUtils.d.ts +3 -2
- package/lib/MediaUtils/MediaDomUtils.d.ts.map +1 -1
- package/lib/MediaUtils/MediaDomUtils.js +235 -174
- package/lib/MediaUtils/MediaDomUtils.js.map +1 -1
- package/lib/MediaUtils/MediaTracer.js +9 -4
- package/lib/MediaUtils/MediaTracer.js.map +1 -1
- package/lib/MediaUtils/index.d.ts +1 -0
- package/lib/MediaUtils/index.d.ts.map +1 -0
- package/lib/MediaUtils/index.js +16 -0
- package/lib/MediaUtils/index.js.map +1 -0
- package/lib/MultiParty/Contracts.d.ts +16 -0
- package/lib/MultiParty/Contracts.d.ts.map +1 -0
- package/lib/MultiParty/Contracts.js +6 -0
- package/lib/MultiParty/Contracts.js.map +1 -0
- package/lib/MultiParty/DetectWebRtcService.d.ts +16 -0
- package/lib/MultiParty/DetectWebRtcService.d.ts.map +1 -0
- package/lib/MultiParty/DetectWebRtcService.js +79 -0
- package/lib/MultiParty/DetectWebRtcService.js.map +1 -0
- package/lib/MultiParty/MediaCapabilitiesService.d.ts +23 -0
- package/lib/MultiParty/MediaCapabilitiesService.d.ts.map +1 -0
- package/lib/MultiParty/MediaCapabilitiesService.js +369 -0
- package/lib/MultiParty/MediaCapabilitiesService.js.map +1 -0
- package/lib/MultiParty/MediaCapabilitiesUtils.d.ts +5 -0
- package/lib/MultiParty/MediaCapabilitiesUtils.d.ts.map +1 -0
- package/lib/MultiParty/MediaCapabilitiesUtils.js +305 -0
- package/lib/MultiParty/MediaCapabilitiesUtils.js.map +1 -0
- package/lib/MultiParty/MultiPartyService.d.ts +41 -0
- package/lib/MultiParty/MultiPartyService.d.ts.map +1 -0
- package/lib/MultiParty/MultiPartyService.js +72 -0
- package/lib/MultiParty/MultiPartyService.js.map +1 -0
- package/lib/MultiParty/MultiPartyServiceFactory.d.ts +3 -0
- package/lib/MultiParty/MultiPartyServiceFactory.d.ts.map +1 -0
- package/lib/MultiParty/MultiPartyServiceFactory.js +21 -0
- package/lib/MultiParty/MultiPartyServiceFactory.js.map +1 -0
- package/lib/MultiParty/OpentokMultiPartyService.d.ts +29 -0
- package/lib/MultiParty/OpentokMultiPartyService.d.ts.map +1 -0
- package/lib/MultiParty/OpentokMultiPartyService.js +888 -0
- package/lib/MultiParty/OpentokMultiPartyService.js.map +1 -0
- package/lib/MultiParty/VideoLayoutType.d.ts +4 -0
- package/lib/MultiParty/VideoLayoutType.d.ts.map +1 -0
- package/lib/MultiParty/VideoLayoutType.js +13 -0
- package/lib/MultiParty/VideoLayoutType.js.map +1 -0
- package/lib/MultiParty/index.d.ts +4 -0
- package/lib/MultiParty/index.d.ts.map +1 -0
- package/lib/MultiParty/index.js +61 -0
- package/lib/MultiParty/index.js.map +1 -0
- package/lib/MultiParty/opentok.d.ts +503 -0
- package/lib/TechseeMediaStream.d.ts +6 -6
- package/lib/TechseeMediaStream.d.ts.map +1 -1
- package/lib/TechseeMediaStream.js +59 -53
- package/lib/TechseeMediaStream.js.map +1 -1
- package/lib/oldCode/constants.js +20 -15
- package/lib/oldCode/constants.js.map +1 -1
- package/lib/oldCode/event-emitter.js +45 -22
- package/lib/oldCode/event-emitter.js.map +1 -1
- package/lib/oldCode/index.js +48 -52
- package/lib/oldCode/index.js.map +1 -1
- package/lib/oldCode/opentok/session.js +261 -236
- package/lib/oldCode/opentok/session.js.map +1 -1
- package/lib/oldCode/opentok/stream.js +283 -269
- package/lib/oldCode/opentok/stream.js.map +1 -1
- package/lib/oldCode/publisher.js +96 -71
- package/lib/oldCode/publisher.js.map +1 -1
- package/lib/oldCode/service.js +294 -272
- package/lib/oldCode/service.js.map +1 -1
- package/lib/oldCode/session.js +82 -60
- package/lib/oldCode/session.js.map +1 -1
- package/lib/oldCode/stream.js +153 -125
- package/lib/oldCode/stream.js.map +1 -1
- package/lib/oldCode/subscriber.js +60 -35
- package/lib/oldCode/subscriber.js.map +1 -1
- package/lib/oldCode/tracer.d.ts +3 -2
- package/lib/oldCode/tracer.d.ts.map +1 -1
- package/lib/oldCode/tracer.js +181 -130
- package/lib/oldCode/tracer.js.map +1 -1
- package/lib/oldCode/utils/ImageFixer.js +67 -44
- package/lib/oldCode/utils/ImageFixer.js.map +1 -1
- package/lib/oldCode/webrtc/constants.js +102 -110
- package/lib/oldCode/webrtc/constants.js.map +1 -1
- package/lib/oldCode/webrtc/helper.js +176 -124
- package/lib/oldCode/webrtc/helper.js.map +1 -1
- package/lib/oldCode/webrtc/session-kms.js +408 -393
- package/lib/oldCode/webrtc/session-kms.js.map +1 -1
- package/lib/oldCode/webrtc/session-loopback.js +245 -227
- package/lib/oldCode/webrtc/session-loopback.js.map +1 -1
- package/lib/oldCode/webrtc/session-turn.js +705 -658
- package/lib/oldCode/webrtc/session-turn.js.map +1 -1
- package/lib/oldCode/webrtc/session-turn.v2.js +480 -471
- package/lib/oldCode/webrtc/session-turn.v2.js.map +1 -1
- package/lib/oldCode/webrtc/session.js +12 -6
- package/lib/oldCode/webrtc/session.js.map +1 -1
- package/lib/oldCode/webrtc/stream.js +526 -504
- package/lib/oldCode/webrtc/stream.js.map +1 -1
- package/lib/oldCode/webrtc/temasys/adapter-loader.js +5 -6
- package/lib/oldCode/webrtc/temasys/adapter-loader.js.map +1 -1
- package/lib/oldCode/webrtc/temasys/adapter.js +5264 -5192
- package/lib/oldCode/webrtc/temasys/adapter.js.map +1 -1
- package/lib/oldCode/webrtc/webrtc-ie-shim.js +3357 -2927
- package/lib/oldCode/webrtc/webrtc-ie-shim.js.map +1 -1
- package/lib/qos/raw-qos.js +348 -273
- package/lib/qos/raw-qos.js.map +1 -1
- package/lib/webrtc-ie-shim.js +3386 -2985
- package/lib/webrtc-ie-shim.js.map +1 -1
- package/package.json +54 -42
|
@@ -1,310 +1,324 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
exports.TsOpenTokStream = exports.EVENTS = undefined;
|
|
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); }
|
|
5
4
|
|
|
6
|
-
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
Object.defineProperty(exports, "EVENTS", {
|
|
9
|
+
enumerable: true,
|
|
10
|
+
get: function get() {
|
|
11
|
+
return _stream.EVENTS;
|
|
12
|
+
}
|
|
13
|
+
});
|
|
14
|
+
exports.TsOpenTokStream = void 0;
|
|
7
15
|
|
|
8
|
-
var _stream = require(
|
|
16
|
+
var _stream = require("../stream");
|
|
9
17
|
|
|
10
|
-
var _subscriber = require(
|
|
18
|
+
var _subscriber = require("../subscriber");
|
|
11
19
|
|
|
12
|
-
var _publisher = require(
|
|
20
|
+
var _publisher = require("../publisher");
|
|
13
21
|
|
|
14
22
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
15
23
|
|
|
16
|
-
function
|
|
24
|
+
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); } }
|
|
17
25
|
|
|
18
|
-
function
|
|
26
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
|
19
27
|
|
|
20
|
-
|
|
28
|
+
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); }
|
|
21
29
|
|
|
22
|
-
|
|
23
|
-
_inherits(TsOpenTokStream, _TsMediaStream);
|
|
30
|
+
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
|
24
31
|
|
|
25
|
-
|
|
26
|
-
_classCallCheck(this, TsOpenTokStream);
|
|
32
|
+
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); }; }
|
|
27
33
|
|
|
28
|
-
|
|
34
|
+
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
|
|
29
35
|
|
|
30
|
-
|
|
31
|
-
_this._session = session;
|
|
36
|
+
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
|
32
37
|
|
|
33
|
-
|
|
34
|
-
return channel.type === 'video';
|
|
35
|
-
}).length > 0;
|
|
36
|
-
_this._audioChannelExists = _this._otstream.channel && _this._otstream.channel.filter(function (channel) {
|
|
37
|
-
return channel.type === 'audio';
|
|
38
|
-
}).length > 0;
|
|
39
|
-
return _this;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
TsOpenTokStream.prototype.publishAudio = function publishAudio(publish) {
|
|
43
|
-
if (this.publisher) {
|
|
44
|
-
this.publisher._otpublisher.publishAudio(publish);
|
|
45
|
-
}
|
|
46
|
-
};
|
|
47
|
-
|
|
48
|
-
TsOpenTokStream.prototype.publishVideo = function publishVideo(publish) {
|
|
49
|
-
if (this.publisher) {
|
|
50
|
-
this.publisher._otpublisher.publishVideo(publish);
|
|
51
|
-
}
|
|
52
|
-
};
|
|
38
|
+
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; } }
|
|
53
39
|
|
|
54
|
-
|
|
55
|
-
var _this2 = this;
|
|
40
|
+
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
56
41
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
target = null;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
return this._session.createSubscriber(this, target, params).then(function (subscriber) {
|
|
63
|
-
subscriber.stream = _this2;
|
|
64
|
-
_this2.subscriber = subscriber;
|
|
65
|
-
|
|
66
|
-
subscriber._otsubscriber.on('destroyed', function (e) {
|
|
67
|
-
subscriber.emit(_subscriber.EVENTS.DESTROYED, e);
|
|
68
|
-
});
|
|
42
|
+
var TsOpenTokStream = /*#__PURE__*/function (_TsMediaStream) {
|
|
43
|
+
_inherits(TsOpenTokStream, _TsMediaStream);
|
|
69
44
|
|
|
70
|
-
|
|
71
|
-
subscriber.emit(_subscriber.EVENTS.DISCONNECTED, e);
|
|
72
|
-
});
|
|
45
|
+
var _super = _createSuper(TsOpenTokStream);
|
|
73
46
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
if (!_this2._environment.isIE11()) {
|
|
77
|
-
// Hack to override behavior introduced by Chrome v71 that unmuted video elements can't auto play
|
|
78
|
-
video.setAttribute('muted', '');
|
|
79
|
-
video.play();
|
|
80
|
-
}
|
|
47
|
+
function TsOpenTokStream(session, otstream) {
|
|
48
|
+
var _this;
|
|
81
49
|
|
|
82
|
-
|
|
50
|
+
_classCallCheck(this, TsOpenTokStream);
|
|
83
51
|
|
|
84
|
-
|
|
52
|
+
_this = _super.call(this, otstream.id, session);
|
|
53
|
+
_this._otstream = otstream;
|
|
54
|
+
_this._session = session;
|
|
55
|
+
_this._videoChannelExists = _this._otstream.channel && _this._otstream.channel.filter(function (channel) {
|
|
56
|
+
return channel.type === 'video';
|
|
57
|
+
}).length > 0;
|
|
58
|
+
_this._audioChannelExists = _this._otstream.channel && _this._otstream.channel.filter(function (channel) {
|
|
59
|
+
return channel.type === 'audio';
|
|
60
|
+
}).length > 0;
|
|
61
|
+
return _this;
|
|
62
|
+
}
|
|
85
63
|
|
|
86
|
-
|
|
64
|
+
_createClass(TsOpenTokStream, [{
|
|
65
|
+
key: "id",
|
|
66
|
+
get: function get() {
|
|
67
|
+
return this._otstream.streamId;
|
|
68
|
+
}
|
|
69
|
+
}, {
|
|
70
|
+
key: "name",
|
|
71
|
+
get: function get() {
|
|
72
|
+
return this._otstream.name;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Whether the stream has video. This property can change if the publisher turns on or off video
|
|
76
|
+
* (by calling Publisher.publishVideo()). When this occurs, the Session object dispatches a streamPropertyChanged
|
|
77
|
+
* event (see StreamPropertyChangedEvent).
|
|
78
|
+
*/
|
|
79
|
+
|
|
80
|
+
}, {
|
|
81
|
+
key: "hasVideo",
|
|
82
|
+
get: function get() {
|
|
83
|
+
return this._otstream.hasVideo;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Whether the stream has audio. This property can change if the publisher turns on or off audio
|
|
87
|
+
* (by calling Publisher.publishAudio()). When this occurs, the Session object dispatches a streamPropertyChanged
|
|
88
|
+
* event (see StreamPropertyChangedEvent).
|
|
89
|
+
*/
|
|
90
|
+
|
|
91
|
+
}, {
|
|
92
|
+
key: "hasAudio",
|
|
93
|
+
get: function get() {
|
|
94
|
+
return this._otstream.hasAudio;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Indicates if video channel exists in the stream.
|
|
98
|
+
*/
|
|
99
|
+
|
|
100
|
+
}, {
|
|
101
|
+
key: "videoChannelExists",
|
|
102
|
+
get: function get() {
|
|
103
|
+
return this._videoChannelExists;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Indicates if audio channel exists in the stream.
|
|
107
|
+
*/
|
|
108
|
+
|
|
109
|
+
}, {
|
|
110
|
+
key: "audioChannelExists",
|
|
111
|
+
get: function get() {
|
|
112
|
+
return this._audioChannelExists;
|
|
113
|
+
}
|
|
114
|
+
}, {
|
|
115
|
+
key: "publishAudio",
|
|
116
|
+
value: function publishAudio(publish) {
|
|
117
|
+
if (this.publisher) {
|
|
118
|
+
this.publisher._otpublisher.publishAudio(publish);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}, {
|
|
122
|
+
key: "publishVideo",
|
|
123
|
+
value: function publishVideo(publish) {
|
|
124
|
+
if (this.publisher) {
|
|
125
|
+
this.publisher._otpublisher.publishVideo(publish);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}, {
|
|
129
|
+
key: "subscribe",
|
|
130
|
+
value: function subscribe(target, params) {
|
|
131
|
+
var _this2 = this;
|
|
132
|
+
|
|
133
|
+
if (!params) {
|
|
134
|
+
params = target;
|
|
135
|
+
target = null;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
return this._session.createSubscriber(this, target, params).then(function (subscriber) {
|
|
139
|
+
subscriber.stream = _this2;
|
|
140
|
+
_this2.subscriber = subscriber;
|
|
141
|
+
|
|
142
|
+
subscriber._otsubscriber.on('destroyed', function (e) {
|
|
143
|
+
subscriber.emit(_subscriber.EVENTS.DESTROYED, e);
|
|
87
144
|
});
|
|
88
|
-
};
|
|
89
|
-
|
|
90
|
-
TsOpenTokStream.prototype.getVideoElement = function getVideoElement(container) {
|
|
91
|
-
var element = $(container).find('.OT_video-element');
|
|
92
|
-
|
|
93
|
-
return element.length > 0 ? element : $(container).find('.OT_video-container > video');
|
|
94
|
-
};
|
|
95
|
-
|
|
96
|
-
TsOpenTokStream.prototype.destroySubscriber = function destroySubscriber(subscriber) {
|
|
97
|
-
return this._session.destroySubscriber(subscriber);
|
|
98
|
-
};
|
|
99
|
-
|
|
100
|
-
TsOpenTokStream.prototype.getSnapshot = function getSnapshot(tsMediaElement) {
|
|
101
|
-
var _this3 = this;
|
|
102
|
-
|
|
103
|
-
var timeout = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
|
|
104
|
-
|
|
105
|
-
var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},
|
|
106
|
-
_ref$format = _ref.format,
|
|
107
|
-
format = _ref$format === undefined ? 'image/png' : _ref$format,
|
|
108
|
-
_ref$quality = _ref.quality,
|
|
109
|
-
quality = _ref$quality === undefined ? 0.92 : _ref$quality,
|
|
110
|
-
x = _ref.x,
|
|
111
|
-
y = _ref.y,
|
|
112
|
-
w = _ref.w,
|
|
113
|
-
h = _ref.h;
|
|
114
|
-
|
|
115
|
-
return new Promise(function (resolve) {
|
|
116
|
-
var otElement = tsMediaElement[tsMediaElement instanceof _publisher.TsMediaPublisher ? '_otpublisher' : '_otsubscriber'];
|
|
117
|
-
var crop = !_.isUndefined(x) && !_.isUndefined(y) && !_.isUndefined(w) && !_.isUndefined(h);
|
|
118
|
-
var resize = !crop && (!_.isUndefined(w) || !_.isUndefined(h));
|
|
119
|
-
|
|
120
|
-
if (!_this3._environment.isIE11() && format.toLowerCase() === 'image/png' && !crop && !resize) {
|
|
121
|
-
return resolve('data:image/png;base64,' + otElement.getImgData());
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
var videoElement = _this3.getVideoElement(otElement.element);
|
|
125
|
-
|
|
126
|
-
if (!_this3._environment.isIE11()) {
|
|
127
|
-
var videoElem = videoElement[0];
|
|
128
|
-
var canvas = document.createElement('canvas');
|
|
129
|
-
var ctx = canvas.getContext('2d');
|
|
130
|
-
|
|
131
|
-
if (crop) {
|
|
132
|
-
canvas.width = w;
|
|
133
|
-
canvas.height = h;
|
|
134
|
-
|
|
135
|
-
ctx.drawImage(videoElem, x, y, w, h, 0, 0, w, h);
|
|
136
|
-
} else if (resize) {
|
|
137
|
-
if (!h) {
|
|
138
|
-
h = w * (videoElem.videoHeight / videoElem.videoWidth);
|
|
139
|
-
} else if (!w) {
|
|
140
|
-
w = h * (videoElem.videoWidth / videoElem.videoHeight);
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
canvas.width = w;
|
|
144
|
-
canvas.height = h;
|
|
145
|
-
|
|
146
|
-
ctx.drawImage(videoElem, 0, 0, w, h);
|
|
147
|
-
} else {
|
|
148
|
-
canvas.width = videoElem.videoWidth;
|
|
149
|
-
canvas.height = videoElem.videoHeight;
|
|
150
|
-
|
|
151
|
-
ctx.drawImage(videoElem, 0, 0);
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
return resolve(canvas.toDataURL(format, quality));
|
|
155
|
-
}
|
|
156
145
|
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
var currentPosition = videoElement.position();
|
|
160
|
-
var _videoDimensions = _this3.videoDimensions,
|
|
161
|
-
videoWidth = _videoDimensions.width,
|
|
162
|
-
videoHeight = _videoDimensions.height;
|
|
163
|
-
|
|
164
|
-
var ratio = Math.max(videoWidth / currentWidth, videoHeight / currentHeight);
|
|
165
|
-
|
|
166
|
-
videoElement.width(videoWidth / ratio);
|
|
167
|
-
videoElement.height(videoHeight / ratio);
|
|
168
|
-
|
|
169
|
-
videoElement.css({
|
|
170
|
-
left: currentPosition.left + Math.max(0, (currentWidth - videoWidth / ratio) / 2) + 'px',
|
|
171
|
-
|
|
172
|
-
top: currentPosition.top + Math.max(0, (currentHeight - videoHeight / ratio) / 2) + 'px'
|
|
173
|
-
});
|
|
174
|
-
|
|
175
|
-
setTimeout(function () {
|
|
176
|
-
var pngDataURL = 'data:image/png;base64,' + otElement.getImgData();
|
|
177
|
-
|
|
178
|
-
if (format.toLowerCase() === 'image/png' && !crop && !resize) {
|
|
179
|
-
resolve(pngDataURL);
|
|
180
|
-
} else {
|
|
181
|
-
var img = new Image(),
|
|
182
|
-
_canvas = document.createElement('canvas'),
|
|
183
|
-
_ctx = _canvas.getContext('2d');
|
|
184
|
-
|
|
185
|
-
img.onload = function () {
|
|
186
|
-
if (crop) {
|
|
187
|
-
var widthRatio = img.width / videoWidth;
|
|
188
|
-
var heightRatio = img.height / videoHeight;
|
|
189
|
-
|
|
190
|
-
x = x && x * widthRatio;
|
|
191
|
-
y = y && y * heightRatio;
|
|
192
|
-
w = w && w * widthRatio;
|
|
193
|
-
h = h && h * heightRatio;
|
|
194
|
-
|
|
195
|
-
_canvas.width = w;
|
|
196
|
-
_canvas.height = h;
|
|
197
|
-
|
|
198
|
-
_ctx.drawImage(img, x, y, w, h, 0, 0, w, h);
|
|
199
|
-
} else if (resize) {
|
|
200
|
-
if (!h) {
|
|
201
|
-
h = w * (videoHeight / videoWidth);
|
|
202
|
-
} else if (!w) {
|
|
203
|
-
w = h * (videoWidth / videoHeight);
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
_canvas.width = w;
|
|
207
|
-
_canvas.height = h;
|
|
208
|
-
|
|
209
|
-
_ctx.drawImage(img, 0, 0, w, h);
|
|
210
|
-
} else {
|
|
211
|
-
_canvas.width = img.width;
|
|
212
|
-
_canvas.height = img.height;
|
|
213
|
-
|
|
214
|
-
_ctx.drawImage(img);
|
|
215
|
-
}
|
|
216
|
-
|
|
217
|
-
return resolve(_canvas.toDataURL(format, quality));
|
|
218
|
-
};
|
|
219
|
-
|
|
220
|
-
img.src = pngDataURL;
|
|
221
|
-
}
|
|
222
|
-
|
|
223
|
-
videoElement.width(currentWidth);
|
|
224
|
-
videoElement.height(currentHeight);
|
|
225
|
-
|
|
226
|
-
videoElement.css({
|
|
227
|
-
left: currentPosition.left + 'px',
|
|
228
|
-
top: currentPosition.top + 'px'
|
|
229
|
-
});
|
|
230
|
-
}, timeout * 1000);
|
|
231
|
-
}).then(function (imgData) {
|
|
232
|
-
if (!imgData || imgData.length < 10) {
|
|
233
|
-
return Promise.reject('Failed to get a snapshot');
|
|
234
|
-
}
|
|
235
|
-
|
|
236
|
-
return imgData;
|
|
146
|
+
subscriber._otsubscriber.on('disconnected', function (e) {
|
|
147
|
+
subscriber.emit(_subscriber.EVENTS.DISCONNECTED, e);
|
|
237
148
|
});
|
|
238
|
-
};
|
|
239
149
|
|
|
240
|
-
|
|
241
|
-
return new Promise(function (resolve, reject) {
|
|
242
|
-
subscriber._otsubscriber.getStats(function (err, stats) {
|
|
243
|
-
if (err) {
|
|
244
|
-
return reject(err);
|
|
245
|
-
}
|
|
150
|
+
var video = _this2.getVideoElement(subscriber._otsubscriber.element)[0];
|
|
246
151
|
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
_createClass(TsOpenTokStream, [{
|
|
253
|
-
key: 'id',
|
|
254
|
-
get: function get() {
|
|
255
|
-
return this._otstream.streamId;
|
|
256
|
-
}
|
|
257
|
-
}, {
|
|
258
|
-
key: 'name',
|
|
259
|
-
get: function get() {
|
|
260
|
-
return this._otstream.name;
|
|
152
|
+
if (!_this2._environment.isIE11()) {
|
|
153
|
+
// Hack to override behavior introduced by Chrome v71 that unmuted video elements can't auto play
|
|
154
|
+
video.setAttribute('muted', '');
|
|
155
|
+
video.play();
|
|
261
156
|
}
|
|
262
157
|
|
|
263
|
-
|
|
264
|
-
* Whether the stream has video. This property can change if the publisher turns on or off video
|
|
265
|
-
* (by calling Publisher.publishVideo()). When this occurs, the Session object dispatches a streamPropertyChanged
|
|
266
|
-
* event (see StreamPropertyChangedEvent).
|
|
267
|
-
*/
|
|
158
|
+
_this2.setupDimensionsListener(video, subscriber);
|
|
268
159
|
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
160
|
+
subscriber.id = subscriber._otsubscriber.id;
|
|
161
|
+
return subscriber;
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
}, {
|
|
165
|
+
key: "getVideoElement",
|
|
166
|
+
value: function getVideoElement(container) {
|
|
167
|
+
var element = $(container).find('.OT_video-element');
|
|
168
|
+
return element.length > 0 ? element : $(container).find('.OT_video-container > video');
|
|
169
|
+
}
|
|
170
|
+
}, {
|
|
171
|
+
key: "destroySubscriber",
|
|
172
|
+
value: function destroySubscriber(subscriber) {
|
|
173
|
+
return this._session.destroySubscriber(subscriber);
|
|
174
|
+
}
|
|
175
|
+
}, {
|
|
176
|
+
key: "getSnapshot",
|
|
177
|
+
value: function getSnapshot(tsMediaElement) {
|
|
178
|
+
var _this3 = this;
|
|
179
|
+
|
|
180
|
+
var timeout = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
|
|
181
|
+
|
|
182
|
+
var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},
|
|
183
|
+
_ref$format = _ref.format,
|
|
184
|
+
format = _ref$format === void 0 ? 'image/png' : _ref$format,
|
|
185
|
+
_ref$quality = _ref.quality,
|
|
186
|
+
quality = _ref$quality === void 0 ? 0.92 : _ref$quality,
|
|
187
|
+
x = _ref.x,
|
|
188
|
+
y = _ref.y,
|
|
189
|
+
w = _ref.w,
|
|
190
|
+
h = _ref.h;
|
|
191
|
+
|
|
192
|
+
return new Promise(function (resolve) {
|
|
193
|
+
var otElement = tsMediaElement[tsMediaElement instanceof _publisher.TsMediaPublisher ? '_otpublisher' : '_otsubscriber'];
|
|
194
|
+
var crop = !_.isUndefined(x) && !_.isUndefined(y) && !_.isUndefined(w) && !_.isUndefined(h);
|
|
195
|
+
var resize = !crop && (!_.isUndefined(w) || !_.isUndefined(h));
|
|
196
|
+
|
|
197
|
+
if (!_this3._environment.isIE11() && format.toLowerCase() === 'image/png' && !crop && !resize) {
|
|
198
|
+
return resolve("data:image/png;base64,".concat(otElement.getImgData()));
|
|
273
199
|
}
|
|
274
200
|
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
201
|
+
var videoElement = _this3.getVideoElement(otElement.element);
|
|
202
|
+
|
|
203
|
+
if (!_this3._environment.isIE11()) {
|
|
204
|
+
var videoElem = videoElement[0];
|
|
205
|
+
var canvas = document.createElement('canvas');
|
|
206
|
+
var ctx = canvas.getContext('2d');
|
|
207
|
+
|
|
208
|
+
if (crop) {
|
|
209
|
+
canvas.width = w;
|
|
210
|
+
canvas.height = h;
|
|
211
|
+
ctx.drawImage(videoElem, x, y, w, h, 0, 0, w, h);
|
|
212
|
+
} else if (resize) {
|
|
213
|
+
if (!h) {
|
|
214
|
+
h = w * (videoElem.videoHeight / videoElem.videoWidth);
|
|
215
|
+
} else if (!w) {
|
|
216
|
+
w = h * (videoElem.videoWidth / videoElem.videoHeight);
|
|
217
|
+
}
|
|
286
218
|
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
219
|
+
canvas.width = w;
|
|
220
|
+
canvas.height = h;
|
|
221
|
+
ctx.drawImage(videoElem, 0, 0, w, h);
|
|
222
|
+
} else {
|
|
223
|
+
canvas.width = videoElem.videoWidth;
|
|
224
|
+
canvas.height = videoElem.videoHeight;
|
|
225
|
+
ctx.drawImage(videoElem, 0, 0);
|
|
226
|
+
}
|
|
290
227
|
|
|
291
|
-
|
|
292
|
-
key: 'videoChannelExists',
|
|
293
|
-
get: function get() {
|
|
294
|
-
return this._videoChannelExists;
|
|
228
|
+
return resolve(canvas.toDataURL(format, quality));
|
|
295
229
|
}
|
|
296
230
|
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
231
|
+
var currentWidth = videoElement.width();
|
|
232
|
+
var currentHeight = videoElement.height();
|
|
233
|
+
var currentPosition = videoElement.position();
|
|
234
|
+
var _this3$videoDimension = _this3.videoDimensions,
|
|
235
|
+
videoWidth = _this3$videoDimension.width,
|
|
236
|
+
videoHeight = _this3$videoDimension.height;
|
|
237
|
+
var ratio = Math.max(videoWidth / currentWidth, videoHeight / currentHeight);
|
|
238
|
+
videoElement.width(videoWidth / ratio);
|
|
239
|
+
videoElement.height(videoHeight / ratio);
|
|
240
|
+
videoElement.css({
|
|
241
|
+
left: currentPosition.left + Math.max(0, (currentWidth - videoWidth / ratio) / 2) + 'px',
|
|
242
|
+
top: currentPosition.top + Math.max(0, (currentHeight - videoHeight / ratio) / 2) + 'px'
|
|
243
|
+
});
|
|
244
|
+
setTimeout(function () {
|
|
245
|
+
var pngDataURL = "data:image/png;base64,".concat(otElement.getImgData());
|
|
246
|
+
|
|
247
|
+
if (format.toLowerCase() === 'image/png' && !crop && !resize) {
|
|
248
|
+
resolve(pngDataURL);
|
|
249
|
+
} else {
|
|
250
|
+
var img = new Image(),
|
|
251
|
+
_canvas = document.createElement('canvas'),
|
|
252
|
+
_ctx = _canvas.getContext('2d');
|
|
253
|
+
|
|
254
|
+
img.onload = function () {
|
|
255
|
+
if (crop) {
|
|
256
|
+
var widthRatio = img.width / videoWidth;
|
|
257
|
+
var heightRatio = img.height / videoHeight;
|
|
258
|
+
x = x && x * widthRatio;
|
|
259
|
+
y = y && y * heightRatio;
|
|
260
|
+
w = w && w * widthRatio;
|
|
261
|
+
h = h && h * heightRatio;
|
|
262
|
+
_canvas.width = w;
|
|
263
|
+
_canvas.height = h;
|
|
264
|
+
|
|
265
|
+
_ctx.drawImage(img, x, y, w, h, 0, 0, w, h);
|
|
266
|
+
} else if (resize) {
|
|
267
|
+
if (!h) {
|
|
268
|
+
h = w * (videoHeight / videoWidth);
|
|
269
|
+
} else if (!w) {
|
|
270
|
+
w = h * (videoWidth / videoHeight);
|
|
271
|
+
}
|
|
300
272
|
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
273
|
+
_canvas.width = w;
|
|
274
|
+
_canvas.height = h;
|
|
275
|
+
|
|
276
|
+
_ctx.drawImage(img, 0, 0, w, h);
|
|
277
|
+
} else {
|
|
278
|
+
_canvas.width = img.width;
|
|
279
|
+
_canvas.height = img.height;
|
|
280
|
+
|
|
281
|
+
_ctx.drawImage(img);
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
return resolve(_canvas.toDataURL(format, quality));
|
|
285
|
+
};
|
|
286
|
+
|
|
287
|
+
img.src = pngDataURL;
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
videoElement.width(currentWidth);
|
|
291
|
+
videoElement.height(currentHeight);
|
|
292
|
+
videoElement.css({
|
|
293
|
+
left: currentPosition.left + 'px',
|
|
294
|
+
top: currentPosition.top + 'px'
|
|
295
|
+
});
|
|
296
|
+
}, timeout * 1000);
|
|
297
|
+
}).then(function (imgData) {
|
|
298
|
+
if (!imgData || imgData.length < 10) {
|
|
299
|
+
return Promise.reject('Failed to get a snapshot');
|
|
305
300
|
}
|
|
306
|
-
}]);
|
|
307
301
|
|
|
308
|
-
|
|
302
|
+
return imgData;
|
|
303
|
+
});
|
|
304
|
+
}
|
|
305
|
+
}, {
|
|
306
|
+
key: "getStats",
|
|
307
|
+
value: function getStats(subscriber) {
|
|
308
|
+
return new Promise(function (resolve, reject) {
|
|
309
|
+
subscriber._otsubscriber.getStats(function (err, stats) {
|
|
310
|
+
if (err) {
|
|
311
|
+
return reject(err);
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
return resolve(stats);
|
|
315
|
+
});
|
|
316
|
+
});
|
|
317
|
+
}
|
|
318
|
+
}]);
|
|
319
|
+
|
|
320
|
+
return TsOpenTokStream;
|
|
309
321
|
}(_stream.TsMediaStream);
|
|
322
|
+
|
|
323
|
+
exports.TsOpenTokStream = TsOpenTokStream;
|
|
310
324
|
//# sourceMappingURL=stream.js.map
|