fcr-core 3.8.2 → 3.9.0-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/chat-connector/type.d.ts +40 -0
- package/lib/{chat-connection → chat-connector}/type.js +1 -1
- package/lib/engine/index.d.ts +10 -11
- package/lib/engine/index.js +63 -72
- package/lib/engine/type.d.ts +96 -0
- package/lib/engine/type.js +5 -0
- package/lib/imports.d.ts +7 -4
- package/lib/imports.js +30 -4
- package/lib/index.d.ts +3 -2
- package/lib/index.js +21 -2
- package/lib/media-control/desktop.js +12 -12
- package/lib/media-control/mobile.js +4 -0
- package/lib/media-control/type.d.ts +32 -33
- package/lib/monitor-control/index.js +3 -3
- package/lib/peer-session/index.js +14 -14
- package/lib/peer-session/type.d.ts +1 -1
- package/lib/plugins/chat/chatroom.js +417 -0
- package/lib/{chat-connection → plugins/chat}/config.d.ts +1 -0
- package/lib/{chat-connection → plugins/chat}/config.js +2 -1
- package/lib/plugins/chat/connector.d.ts +38 -0
- package/lib/{chat-connection/index.js → plugins/chat/connector.js} +181 -61
- package/lib/room-control/ability-control/index.js +5 -4
- package/lib/room-control/ability-control/type.d.ts +5 -1
- package/lib/room-control/ability-control/type.js +4 -0
- package/lib/room-control/chatroom-control/type.d.ts +44 -35
- package/lib/room-control/group-control/index.js +9 -9
- package/lib/room-control/index.js +37 -22
- package/lib/room-control/interpreter-control/index.js +7 -4
- package/lib/room-control/interpreter-control/room.js +3 -3
- package/lib/room-control/interpreter-control/types.d.ts +2 -2
- package/lib/room-control/join-before-host-waitingroom-control/index.js +3 -3
- package/lib/room-control/mainroom-control/index.js +15 -13
- package/lib/room-control/privilege-control/index.js +39 -24
- package/lib/room-control/privilege-control/type.d.ts +15 -15
- package/lib/room-control/room-connector-control/index.js +7 -5
- package/lib/room-control/room-connector-control/type.d.ts +1 -1
- package/lib/room-control/room-control-factory.d.ts +3 -3
- package/lib/room-control/room-control-factory.js +7 -7
- package/lib/room-control/room-session/index.js +17 -15
- package/lib/room-control/room-session/type.d.ts +3 -3
- package/lib/room-control/sharing-control/index.js +13 -7
- package/lib/room-control/stream-control/index.js +18 -16
- package/lib/room-control/stream-control/type.d.ts +5 -5
- package/lib/room-control/stt-control/index.js +38 -31
- package/lib/room-control/type.d.ts +19 -19
- package/lib/room-control/user-control/index.js +20 -22
- package/lib/room-control/user-control/type.d.ts +1 -1
- package/lib/room-control/waitingroom-control/index.js +11 -11
- package/lib/room-control/whiteboard-control-v1/board-window.d.ts +21 -20
- package/lib/room-control/whiteboard-control-v1/board-window.js +27 -8
- package/lib/room-control/whiteboard-control-v1/factory.js +1 -1
- package/lib/room-control/whiteboard-control-v1/index.js +26 -18
- package/lib/room-control/whiteboard-control-v1/type.d.ts +26 -25
- package/lib/room-control/whiteboard-control-v1/type.js +1 -0
- package/lib/room-control/whiteboard-control-v2/annotation-control/control.d.ts +15 -6
- package/lib/room-control/whiteboard-control-v2/annotation-control/control.js +39 -5
- package/lib/room-control/whiteboard-control-v2/annotation-control/factory.d.ts +4 -5
- package/lib/room-control/whiteboard-control-v2/annotation-control/factory.js +6 -5
- package/lib/room-control/whiteboard-control-v2/annotation-control/type.d.ts +7 -1
- package/lib/room-control/whiteboard-control-v2/base/index.d.ts +9 -8
- package/lib/room-control/whiteboard-control-v2/base/index.js +84 -42
- package/lib/room-control/whiteboard-control-v2/base/main-window.d.ts +16 -15
- package/lib/room-control/whiteboard-control-v2/base/main-window.js +23 -4
- package/lib/room-control/whiteboard-control-v2/type.d.ts +17 -17
- package/lib/room-control/whiteboard-control-v2/whiteboard-control/control.d.ts +12 -6
- package/lib/room-control/whiteboard-control-v2/whiteboard-control/control.js +64 -18
- package/lib/room-control/whiteboard-control-v2/whiteboard-control/factory.d.ts +2 -2
- package/lib/room-control/whiteboard-control-v2/whiteboard-control/factory.js +10 -10
- package/lib/room-control/whiteboard-control-v2/whiteboard-control/type.d.ts +1 -1
- package/lib/room-router/index.js +10 -7
- package/lib/room-router/type.d.ts +1 -1
- package/lib/schema.d.ts +24 -46
- package/lib/schema.js +1 -2
- package/lib/service/api.d.ts +5 -3
- package/lib/service/api.js +17 -12
- package/lib/type.d.ts +64 -45
- package/lib/type.js +76 -11
- package/lib/utilities/abortable-retry.d.ts +38 -0
- package/lib/utilities/abortable-retry.js +61 -0
- package/lib/utilities/dual-video-stream-config.d.ts +6 -0
- package/lib/utilities/dual-video-stream-config.js +25 -0
- package/lib/utilities/error-helpers.d.ts +10 -9
- package/lib/utilities/error-helpers.js +12 -11
- package/lib/utilities/error.d.ts +4 -40
- package/lib/utilities/error.js +20 -77
- package/lib/utilities/join-helper.js +2 -2
- package/lib/utilities/logger.d.ts +2 -2
- package/lib/utilities/logger.js +6 -25
- package/lib/utilities/package-info.d.ts +1 -2
- package/lib/utilities/package-info.js +4 -8
- package/lib/utilities/parameters.js +88 -15
- package/lib/utilities/validate-params.js +1 -1
- package/lib/utilities/video-encoder-config.d.ts +9 -0
- package/lib/utilities/video-encoder-config.js +109 -0
- package/lib-es/{chat-connection → chat-connector}/type.js +1 -1
- package/lib-es/engine/index.js +46 -56
- package/lib-es/engine/type.js +1 -0
- package/lib-es/imports.js +5 -3
- package/lib-es/index.js +2 -1
- package/lib-es/media-control/desktop.js +12 -12
- package/lib-es/media-control/mobile.js +4 -0
- package/lib-es/monitor-control/index.js +3 -3
- package/lib-es/peer-session/index.js +16 -15
- package/lib-es/plugins/chat/chatroom.js +409 -0
- package/lib-es/{chat-connection → plugins/chat}/config.js +2 -1
- package/lib-es/{chat-connection/index.js → plugins/chat/connector.js} +178 -58
- package/lib-es/room-control/ability-control/index.js +5 -4
- package/lib-es/room-control/ability-control/type.js +4 -0
- package/lib-es/room-control/group-control/index.js +11 -10
- package/lib-es/room-control/index.js +40 -26
- package/lib-es/room-control/interpreter-control/index.js +10 -5
- package/lib-es/room-control/interpreter-control/room.js +3 -3
- package/lib-es/room-control/join-before-host-waitingroom-control/index.js +4 -3
- package/lib-es/room-control/mainroom-control/index.js +16 -17
- package/lib-es/room-control/privilege-control/index.js +43 -29
- package/lib-es/room-control/room-connector-control/index.js +9 -6
- package/lib-es/room-control/room-control-factory.js +6 -6
- package/lib-es/room-control/room-session/index.js +21 -22
- package/lib-es/room-control/sharing-control/index.js +13 -7
- package/lib-es/room-control/stream-control/index.js +21 -18
- package/lib-es/room-control/stt-control/index.js +23 -15
- package/lib-es/room-control/user-control/index.js +23 -23
- package/lib-es/room-control/waitingroom-control/index.js +10 -9
- package/lib-es/room-control/whiteboard-control-v1/board-window.js +27 -8
- package/lib-es/room-control/whiteboard-control-v1/factory.js +1 -1
- package/lib-es/room-control/whiteboard-control-v1/index.js +26 -17
- package/lib-es/room-control/whiteboard-control-v1/type.js +1 -0
- package/lib-es/room-control/whiteboard-control-v2/annotation-control/control.js +39 -5
- package/lib-es/room-control/whiteboard-control-v2/annotation-control/factory.js +7 -6
- package/lib-es/room-control/whiteboard-control-v2/base/index.js +86 -42
- package/lib-es/room-control/whiteboard-control-v2/base/main-window.js +23 -4
- package/lib-es/room-control/whiteboard-control-v2/whiteboard-control/control.js +60 -13
- package/lib-es/room-control/whiteboard-control-v2/whiteboard-control/factory.js +10 -10
- package/lib-es/room-router/index.js +10 -6
- package/lib-es/schema.js +1 -2
- package/lib-es/service/api.js +17 -12
- package/lib-es/type.js +70 -18
- package/lib-es/utilities/abortable-retry.js +54 -0
- package/lib-es/utilities/dual-video-stream-config.js +19 -0
- package/lib-es/utilities/error-helpers.js +13 -12
- package/lib-es/utilities/error.js +9 -75
- package/lib-es/utilities/join-helper.js +4 -3
- package/lib-es/utilities/logger.js +7 -23
- package/lib-es/utilities/package-info.js +4 -6
- package/lib-es/utilities/parameters.js +88 -15
- package/lib-es/utilities/validate-params.js +3 -2
- package/lib-es/utilities/video-encoder-config.js +103 -0
- package/package.json +7 -7
- package/lib/chat-connection/index.d.ts +0 -24
- package/lib/chat-connection/type.d.ts +0 -17
- package/lib/plugins/chatroom.js +0 -454
- package/lib/room-control/chatroom-control/config.d.ts +0 -51
- package/lib/room-control/chatroom-control/config.js +0 -105
- package/lib/utilities/storage.d.ts +0 -8
- package/lib/utilities/storage.js +0 -33
- package/lib-es/plugins/chatroom.js +0 -446
- package/lib-es/room-control/chatroom-control/config.js +0 -100
- package/lib-es/utilities/storage.js +0 -27
- /package/lib/plugins/{chatroom.d.ts → chat/chatroom.d.ts} +0 -0
|
@@ -31,92 +31,92 @@ export interface FcrPrivilegeControl {
|
|
|
31
31
|
* @param enable
|
|
32
32
|
* @param targetRoles
|
|
33
33
|
*/
|
|
34
|
-
allowShareAndWrite(enable: boolean, targetRoles: FcrPrivilegeUserRole[]): Promise<
|
|
34
|
+
allowShareAndWrite(enable: boolean, targetRoles: FcrPrivilegeUserRole[]): Promise<number>;
|
|
35
35
|
/**
|
|
36
36
|
* Enables or disables whiteboard write privilege.
|
|
37
37
|
* @param enable
|
|
38
38
|
* @param targetRoles
|
|
39
39
|
*/
|
|
40
|
-
allowWriteBoard(enable: boolean, targetRoles: FcrPrivilegeUserRole[]): Promise<
|
|
40
|
+
allowWriteBoard(enable: boolean, targetRoles: FcrPrivilegeUserRole[]): Promise<number>;
|
|
41
41
|
/**
|
|
42
42
|
* Enables or disables whiteboard write privilege by user ids.
|
|
43
43
|
* @param enable
|
|
44
44
|
* @param targetUserIds
|
|
45
45
|
*/
|
|
46
|
-
allowWriteBoardByUserIds(enable: boolean, targetUserIds: string[]): Promise<
|
|
46
|
+
allowWriteBoardByUserIds(enable: boolean, targetUserIds: string[]): Promise<number>;
|
|
47
47
|
/**
|
|
48
48
|
* Enables or disables send chat.
|
|
49
49
|
* @param enable
|
|
50
50
|
* @param targetRoles
|
|
51
51
|
* @param payload
|
|
52
52
|
*/
|
|
53
|
-
allowSendChat(enable: boolean, targetRoles: FcrPrivilegeUserRole[], payload: FcrSecuritySendChatPayload): Promise<
|
|
53
|
+
allowSendChat(enable: boolean, targetRoles: FcrPrivilegeUserRole[], payload: FcrSecuritySendChatPayload): Promise<number>;
|
|
54
54
|
/**
|
|
55
55
|
* Enables or disables start audio.
|
|
56
56
|
* @param enable
|
|
57
57
|
* @param targetRoles
|
|
58
58
|
*/
|
|
59
|
-
allowStartAudio(enable: boolean, targetRoles: FcrPrivilegeUserRole[]): Promise<
|
|
59
|
+
allowStartAudio(enable: boolean, targetRoles: FcrPrivilegeUserRole[]): Promise<number>;
|
|
60
60
|
/**
|
|
61
61
|
* Enables or disables start video.
|
|
62
62
|
* @param enable
|
|
63
63
|
* @param targetRoles
|
|
64
64
|
*/
|
|
65
|
-
allowStartVideo(enable: boolean, targetRoles: FcrPrivilegeUserRole[]): Promise<
|
|
65
|
+
allowStartVideo(enable: boolean, targetRoles: FcrPrivilegeUserRole[]): Promise<number>;
|
|
66
66
|
/**
|
|
67
67
|
* Enables or disables join with muted audio
|
|
68
68
|
* @param enable
|
|
69
69
|
* @param targetRoles
|
|
70
70
|
*/
|
|
71
|
-
allowJoinWithMutedAudio(enable: boolean, targetRoles: FcrPrivilegeUserRole[]): Promise<
|
|
71
|
+
allowJoinWithMutedAudio(enable: boolean, targetRoles: FcrPrivilegeUserRole[]): Promise<number>;
|
|
72
72
|
/**
|
|
73
73
|
* Enables or disables join with close video
|
|
74
74
|
* @param enable
|
|
75
75
|
* @param targetRoles
|
|
76
76
|
*/
|
|
77
|
-
allowJoinWithMutedVideo(enable: boolean, targetRoles: FcrPrivilegeUserRole[]): Promise<
|
|
77
|
+
allowJoinWithMutedVideo(enable: boolean, targetRoles: FcrPrivilegeUserRole[]): Promise<number>;
|
|
78
78
|
/**
|
|
79
79
|
* Enables or disables join with muted audio
|
|
80
80
|
* @param enable
|
|
81
81
|
* @param targetRoles
|
|
82
82
|
*/
|
|
83
|
-
allowWatermark(enable: boolean, targetRoles: FcrPrivilegeUserRole[], lineType?: FcrLineType): Promise<
|
|
83
|
+
allowWatermark(enable: boolean, targetRoles: FcrPrivilegeUserRole[], lineType?: FcrLineType): Promise<number>;
|
|
84
84
|
/**
|
|
85
85
|
* Enables or disables change self name in meeting.
|
|
86
86
|
* @param enable
|
|
87
87
|
* @param targetRoles
|
|
88
88
|
*/
|
|
89
|
-
allowChangeUserName(enable: boolean, targetRoles: FcrPrivilegeUserRole[]): Promise<
|
|
89
|
+
allowChangeUserName(enable: boolean, targetRoles: FcrPrivilegeUserRole[]): Promise<number>;
|
|
90
90
|
/**
|
|
91
91
|
* Enables or disables write annotation.
|
|
92
92
|
* @param enable
|
|
93
93
|
* @param targetRoles
|
|
94
94
|
*/
|
|
95
|
-
allowWriteAnnotation(enable: boolean, targetRoles: FcrPrivilegeUserRole[]): Promise<
|
|
95
|
+
allowWriteAnnotation(enable: boolean, targetRoles: FcrPrivilegeUserRole[]): Promise<number>;
|
|
96
96
|
/**
|
|
97
97
|
* Enables or disables start caption.
|
|
98
98
|
* @param enable
|
|
99
99
|
* @param targetRoles
|
|
100
100
|
*/
|
|
101
|
-
allowStartCaption(enable: boolean, targetRoles: FcrPrivilegeUserRole[]): Promise<
|
|
101
|
+
allowStartCaption(enable: boolean, targetRoles: FcrPrivilegeUserRole[]): Promise<number>;
|
|
102
102
|
/**
|
|
103
103
|
* Enables or disables start transcribing.
|
|
104
104
|
* @param enable
|
|
105
105
|
* @param targetRoles
|
|
106
106
|
*/
|
|
107
|
-
allowStartTranscribing(enable: boolean, targetRoles: FcrPrivilegeUserRole[]): Promise<
|
|
107
|
+
allowStartTranscribing(enable: boolean, targetRoles: FcrPrivilegeUserRole[]): Promise<number>;
|
|
108
108
|
/**
|
|
109
109
|
* Enables or disables update stt source language.
|
|
110
110
|
* @param enable
|
|
111
111
|
* @param targetRoles
|
|
112
112
|
*/
|
|
113
|
-
allowUpdateSttSourceLanguage(enable: boolean, targetRoles: FcrPrivilegeUserRole[]): Promise<
|
|
113
|
+
allowUpdateSttSourceLanguage(enable: boolean, targetRoles: FcrPrivilegeUserRole[]): Promise<number>;
|
|
114
114
|
/**
|
|
115
115
|
* Enables or disables join with prompt sound.
|
|
116
116
|
* @param enable
|
|
117
117
|
* @param targetRoles
|
|
118
118
|
*/
|
|
119
|
-
allowJoinWithPromptSound(enable: boolean, targetRoles: FcrPrivilegeUserRole[]): Promise<
|
|
119
|
+
allowJoinWithPromptSound(enable: boolean, targetRoles: FcrPrivilegeUserRole[]): Promise<number>;
|
|
120
120
|
/**
|
|
121
121
|
* Adds an observer.
|
|
122
122
|
* @param observer
|
|
@@ -31,6 +31,7 @@ var _logger = require("../../utilities/logger");
|
|
|
31
31
|
var _error = require("../../utilities/error");
|
|
32
32
|
var _validateParams = _interopRequireDefault(require("../../utilities/validate-params"));
|
|
33
33
|
var _schema = require("../../schema");
|
|
34
|
+
var _type2 = require("../../type");
|
|
34
35
|
let _initProto, _startSessionByPhoneDecs, _startSessionByIPDecs, _stopSessionDecs;
|
|
35
36
|
function _applyDecs(e, t, r, n, o, a) { function i(e, t, r) { return function (n, o) { return r && r(n), e[t].call(n, o); }; } function c(e, t) { for (var r = 0; r < e.length; r++) e[r].call(t); return t; } function s(e, t, r, n) { if ("function" != typeof e && (n || void 0 !== e)) throw new TypeError(t + " must " + (r || "be") + " a function" + (n ? "" : " or undefined")); return e; } function applyDec(e, t, r, n, o, a, c, u, l, f, p, d, h) { function m(e) { if (!h(e)) throw new TypeError("Attempted to access private element on non-instance"); } var y, v = t[0], g = t[3], b = !u; if (!b) { r || Array.isArray(v) || (v = [v]); var w = {}, S = [], A = 3 === o ? "get" : 4 === o || d ? "set" : "value"; f ? (p || d ? w = { get: _setFunctionName(function () { return g(this); }, n, "get"), set: function (e) { t[4](this, e); } } : w[A] = g, p || _setFunctionName(w[A], n, 2 === o ? "" : A)) : p || (w = Object.getOwnPropertyDescriptor(e, n)); } for (var P = e, j = v.length - 1; j >= 0; j -= r ? 2 : 1) { var D = v[j], E = r ? v[j - 1] : void 0, I = {}, O = { kind: ["field", "accessor", "method", "getter", "setter", "class"][o], name: n, metadata: a, addInitializer: function (e, t) { if (e.v) throw Error("attempted to call addInitializer after decoration was finished"); s(t, "An initializer", "be", !0), c.push(t); }.bind(null, I) }; try { if (b) (y = s(D.call(E, P, O), "class decorators", "return")) && (P = y);else { var k, F; O.static = l, O.private = f, f ? 2 === o ? k = function (e) { return m(e), w.value; } : (o < 4 && (k = i(w, "get", m)), 3 !== o && (F = i(w, "set", m))) : (k = function (e) { return e[n]; }, (o < 2 || 4 === o) && (F = function (e, t) { e[n] = t; })); var N = O.access = { has: f ? h.bind() : function (e) { return n in e; } }; if (k && (N.get = k), F && (N.set = F), P = D.call(E, d ? { get: w.get, set: w.set } : w[A], O), d) { if ("object" == typeof P && P) (y = s(P.get, "accessor.get")) && (w.get = y), (y = s(P.set, "accessor.set")) && (w.set = y), (y = s(P.init, "accessor.init")) && S.push(y);else if (void 0 !== P) throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0"); } else s(P, (p ? "field" : "method") + " decorators", "return") && (p ? S.push(P) : w[A] = P); } } finally { I.v = !0; } } return (p || d) && u.push(function (e, t) { for (var r = S.length - 1; r >= 0; r--) t = S[r].call(e, t); return t; }), p || b || (f ? d ? u.push(i(w, "get"), i(w, "set")) : u.push(2 === o ? w[A] : i.call.bind(w[A])) : Object.defineProperty(e, n, w)), P; } function u(e, t) { return Object.defineProperty(e, Symbol.metadata || Symbol.for("Symbol.metadata"), { configurable: !0, enumerable: !0, value: t }); } if (arguments.length >= 6) var l = a[Symbol.metadata || Symbol.for("Symbol.metadata")]; var f = Object.create(null == l ? null : l), p = function (e, t, r, n) { var o, a, i = [], s = function (t) { return _checkInRHS(t) === e; }, u = new Map(); function l(e) { e && i.push(c.bind(null, e)); } for (var f = 0; f < t.length; f++) { var p = t[f]; if (Array.isArray(p)) { var d = p[1], h = p[2], m = p.length > 3, y = 16 & d, v = !!(8 & d), g = 0 == (d &= 7), b = h + "/" + v; if (!g && !m) { var w = u.get(b); if (!0 === w || 3 === w && 4 !== d || 4 === w && 3 !== d) throw Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: " + h); u.set(b, !(d > 2) || d); } applyDec(v ? e : e.prototype, p, y, m ? "#" + h : _toPropertyKey(h), d, n, v ? a = a || [] : o = o || [], i, v, m, g, 1 === d, v && m ? s : r); } } return l(o), l(a), i; }(e, t, o, f); return r.length || u(e, f), { e: p, get c() { var t = []; return r.length && [u(applyDec(e, [r], n, e.name, 5, f, t), f), c.bind(null, t, e)]; } }; }
|
|
36
37
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
@@ -45,7 +46,7 @@ class FcrRoomConnectorControlImpl {
|
|
|
45
46
|
[_initProto] = _applyDecs(this, [[_imports.trace, 2, "getRoomConnectorPhoneInfo"], [_imports.trace, 2, "getRoomConnectorIpInfo"], [_startSessionByPhoneDecs, 2, "startSessionByPhone"], [_startSessionByIPDecs, 2, "startSessionByIP"], [_stopSessionDecs, 2, "stopSession"]], []).e;
|
|
46
47
|
}
|
|
47
48
|
//@internal
|
|
48
|
-
[(_startSessionByPhoneDecs = [_imports.trace, (0, _validateParams.default)(_schema.fcrPhoneConnectorSessionParamsSchema)], _startSessionByIPDecs = [_imports.trace, (0, _validateParams.default)(_schema.fcrIPConnectorSessionParamsSchema)], _stopSessionDecs = [_imports.trace, (0, _validateParams.default)(_schema.stringSchema)], "logger")] = (_initProto(this), (0, _logger.createLogger)({
|
|
49
|
+
[(_startSessionByPhoneDecs = [(0, _imports.trace)(['params']), (0, _validateParams.default)(_schema.fcrPhoneConnectorSessionParamsSchema)], _startSessionByIPDecs = [(0, _imports.trace)(['params']), (0, _validateParams.default)(_schema.fcrIPConnectorSessionParamsSchema)], _stopSessionDecs = [(0, _imports.trace)(['sessionId']), (0, _validateParams.default)(_schema.stringSchema)], "logger")] = (_initProto(this), (0, _logger.createLogger)({
|
|
49
50
|
prefix: 'FcrRoomConnectorControlImpl'
|
|
50
51
|
}));
|
|
51
52
|
_observable = new _imports.AgoraObservable();
|
|
@@ -100,7 +101,7 @@ class FcrRoomConnectorControlImpl {
|
|
|
100
101
|
callNumber: params.phoneNumber,
|
|
101
102
|
userId: params.phoneUserId,
|
|
102
103
|
userName: params.userName
|
|
103
|
-
}),
|
|
104
|
+
}), _imports.ErrorModuleCode.FCR_ROOM, 'start session by phone failed');
|
|
104
105
|
return data.data.sessionUuid;
|
|
105
106
|
}
|
|
106
107
|
async startSessionByIP(params) {
|
|
@@ -114,7 +115,7 @@ class FcrRoomConnectorControlImpl {
|
|
|
114
115
|
roomId: this._scene.sceneId,
|
|
115
116
|
callType,
|
|
116
117
|
ipAddress: params.address
|
|
117
|
-
}),
|
|
118
|
+
}), _imports.ErrorModuleCode.FCR_ROOM, 'start session by IP failed');
|
|
118
119
|
return data.data.sessionUuid;
|
|
119
120
|
}
|
|
120
121
|
async stopSession(sessionId) {
|
|
@@ -122,7 +123,8 @@ class FcrRoomConnectorControlImpl {
|
|
|
122
123
|
roomId: this._scene.sceneId,
|
|
123
124
|
callId: sessionId,
|
|
124
125
|
userId: this._scene.getLocalUser().getLocalUserId()
|
|
125
|
-
}),
|
|
126
|
+
}), _imports.ErrorModuleCode.FCR_ROOM, 'stop session failed');
|
|
127
|
+
return _type2.FcrReturnCode.SUCCESS;
|
|
126
128
|
}
|
|
127
129
|
addObserver(observer) {
|
|
128
130
|
this._observable.addObserver(observer);
|
|
@@ -180,7 +182,7 @@ class FcrRoomConnectorControlImpl {
|
|
|
180
182
|
}
|
|
181
183
|
}
|
|
182
184
|
_addLogObserver() {
|
|
183
|
-
this.addObserver((0, _logger.generateLogObserver)(this.logger, ['onIPConnectorSessionStateUpdated', 'onPhoneConnectorSessionStateUpdated']));
|
|
185
|
+
this.addObserver((0, _logger.generateLogObserver)(this.logger, [['onIPConnectorSessionStateUpdated', ['session', 'state', 'reason']], ['onPhoneConnectorSessionStateUpdated', ['session', 'state', 'reason']]]));
|
|
184
186
|
}
|
|
185
187
|
}
|
|
186
188
|
exports.FcrRoomConnectorControlImpl = FcrRoomConnectorControlImpl;
|
|
@@ -66,7 +66,7 @@ export interface FcrRoomConnectorControl {
|
|
|
66
66
|
* Stops a session.
|
|
67
67
|
* @param sessionId
|
|
68
68
|
*/
|
|
69
|
-
stopSession(sessionId: string): Promise<
|
|
69
|
+
stopSession(sessionId: string): Promise<number>;
|
|
70
70
|
/**
|
|
71
71
|
* Adds an observer to the room connector.
|
|
72
72
|
* @param observer
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { FcrChatConnector } from '../chat-connector/type';
|
|
2
|
+
import { AgoraRteEngine, AgoraRteEntryRoomResponse, AgoraRteScene } from '../imports';
|
|
2
3
|
import { FcrCoreServiceApi } from '../service/api';
|
|
3
4
|
import { FcrCoreEngineConfig } from '../type';
|
|
4
|
-
import { FcrChatConnection } from '../chat-connection/type';
|
|
5
5
|
import { FcrSharedCache } from './shared-cache';
|
|
6
6
|
import { FcrRoomType } from './type';
|
|
7
7
|
/**
|
|
@@ -12,7 +12,7 @@ export interface RoomControlCreationParams {
|
|
|
12
12
|
scene: AgoraRteScene;
|
|
13
13
|
apiService: FcrCoreServiceApi;
|
|
14
14
|
config: FcrCoreEngineConfig;
|
|
15
|
-
chatConnection:
|
|
15
|
+
chatConnection: FcrChatConnector;
|
|
16
16
|
sharedCache: FcrSharedCache;
|
|
17
17
|
roomResponse: AgoraRteEntryRoomResponse;
|
|
18
18
|
}
|
|
@@ -6,13 +6,13 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.RoomControlFactory = void 0;
|
|
7
7
|
require("core-js/modules/esnext.iterator.constructor.js");
|
|
8
8
|
require("core-js/modules/esnext.iterator.map.js");
|
|
9
|
-
var
|
|
10
|
-
var
|
|
9
|
+
var _imports = require("../imports");
|
|
10
|
+
var _error = require("../utilities/error");
|
|
11
|
+
var _room = require("./interpreter-control/room");
|
|
11
12
|
var _joinBeforeHostWaitingroomControl = require("./join-before-host-waitingroom-control");
|
|
12
13
|
var _mainroomControl = require("./mainroom-control");
|
|
13
|
-
var
|
|
14
|
-
var
|
|
15
|
-
var _error = require("../utilities/error");
|
|
14
|
+
var _type = require("./type");
|
|
15
|
+
var _waitingroomControl = require("./waitingroom-control");
|
|
16
16
|
/**
|
|
17
17
|
* 房间控制的创建参数
|
|
18
18
|
*/
|
|
@@ -53,11 +53,11 @@ class RoomControlFactory {
|
|
|
53
53
|
const roomType = roomResponse.room.roomProperties.roomType;
|
|
54
54
|
const RoomControlImpl = ROOM_CONTROL_IMPLEMENTATIONS[roomType];
|
|
55
55
|
if (!RoomControlImpl) {
|
|
56
|
-
throw (0, _error.generateFcrCoreClientError)(
|
|
56
|
+
throw (0, _error.generateFcrCoreClientError)(_imports.ErrorModuleCode.FCR_ROOM, _imports.DetailErrorCode.UNDEFINED_ERROR, `Unsupported room types: ${roomType}`, new Error(`Unsupported room type: ${roomType}`));
|
|
57
57
|
}
|
|
58
58
|
|
|
59
59
|
// 创建聊天室控制
|
|
60
|
-
const chatRoomControl = new
|
|
60
|
+
const chatRoomControl = new _imports.FcrChatRoomControlImpl(scene, chatConnection, sharedCache, false);
|
|
61
61
|
|
|
62
62
|
// 创建房间控制实例
|
|
63
63
|
return new RoomControlImpl(engine, scene, apiService, config, sharedCache, chatConnection, chatRoomControl);
|
|
@@ -26,11 +26,11 @@ require("core-js/modules/esnext.map.reduce.js");
|
|
|
26
26
|
require("core-js/modules/esnext.map.some.js");
|
|
27
27
|
require("core-js/modules/esnext.map.update.js");
|
|
28
28
|
var _imports = require("../../imports");
|
|
29
|
+
var _schema = require("../../schema");
|
|
29
30
|
var _type = require("../../type");
|
|
30
31
|
var _error = require("../../utilities/error");
|
|
31
32
|
var _logger = require("../../utilities/logger");
|
|
32
33
|
var _validateParams = _interopRequireDefault(require("../../utilities/validate-params"));
|
|
33
|
-
var _schema = require("../../schema");
|
|
34
34
|
var _helpers = require("../helpers");
|
|
35
35
|
let _initProto, _startRoomSessionDecs, _stopRoomSessionDecs, _acceptRoomSessionDecs, _rejectRoomSessionDecs;
|
|
36
36
|
function _applyDecs(e, t, r, n, o, a) { function i(e, t, r) { return function (n, o) { return r && r(n), e[t].call(n, o); }; } function c(e, t) { for (var r = 0; r < e.length; r++) e[r].call(t); return t; } function s(e, t, r, n) { if ("function" != typeof e && (n || void 0 !== e)) throw new TypeError(t + " must " + (r || "be") + " a function" + (n ? "" : " or undefined")); return e; } function applyDec(e, t, r, n, o, a, c, u, l, f, p, d, h) { function m(e) { if (!h(e)) throw new TypeError("Attempted to access private element on non-instance"); } var y, v = t[0], g = t[3], b = !u; if (!b) { r || Array.isArray(v) || (v = [v]); var w = {}, S = [], A = 3 === o ? "get" : 4 === o || d ? "set" : "value"; f ? (p || d ? w = { get: _setFunctionName(function () { return g(this); }, n, "get"), set: function (e) { t[4](this, e); } } : w[A] = g, p || _setFunctionName(w[A], n, 2 === o ? "" : A)) : p || (w = Object.getOwnPropertyDescriptor(e, n)); } for (var P = e, j = v.length - 1; j >= 0; j -= r ? 2 : 1) { var D = v[j], E = r ? v[j - 1] : void 0, I = {}, O = { kind: ["field", "accessor", "method", "getter", "setter", "class"][o], name: n, metadata: a, addInitializer: function (e, t) { if (e.v) throw Error("attempted to call addInitializer after decoration was finished"); s(t, "An initializer", "be", !0), c.push(t); }.bind(null, I) }; try { if (b) (y = s(D.call(E, P, O), "class decorators", "return")) && (P = y);else { var k, F; O.static = l, O.private = f, f ? 2 === o ? k = function (e) { return m(e), w.value; } : (o < 4 && (k = i(w, "get", m)), 3 !== o && (F = i(w, "set", m))) : (k = function (e) { return e[n]; }, (o < 2 || 4 === o) && (F = function (e, t) { e[n] = t; })); var N = O.access = { has: f ? h.bind() : function (e) { return n in e; } }; if (k && (N.get = k), F && (N.set = F), P = D.call(E, d ? { get: w.get, set: w.set } : w[A], O), d) { if ("object" == typeof P && P) (y = s(P.get, "accessor.get")) && (w.get = y), (y = s(P.set, "accessor.set")) && (w.set = y), (y = s(P.init, "accessor.init")) && S.push(y);else if (void 0 !== P) throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0"); } else s(P, (p ? "field" : "method") + " decorators", "return") && (p ? S.push(P) : w[A] = P); } } finally { I.v = !0; } } return (p || d) && u.push(function (e, t) { for (var r = S.length - 1; r >= 0; r--) t = S[r].call(e, t); return t; }), p || b || (f ? d ? u.push(i(w, "get"), i(w, "set")) : u.push(2 === o ? w[A] : i.call.bind(w[A])) : Object.defineProperty(e, n, w)), P; } function u(e, t) { return Object.defineProperty(e, Symbol.metadata || Symbol.for("Symbol.metadata"), { configurable: !0, enumerable: !0, value: t }); } if (arguments.length >= 6) var l = a[Symbol.metadata || Symbol.for("Symbol.metadata")]; var f = Object.create(null == l ? null : l), p = function (e, t, r, n) { var o, a, i = [], s = function (t) { return _checkInRHS(t) === e; }, u = new Map(); function l(e) { e && i.push(c.bind(null, e)); } for (var f = 0; f < t.length; f++) { var p = t[f]; if (Array.isArray(p)) { var d = p[1], h = p[2], m = p.length > 3, y = 16 & d, v = !!(8 & d), g = 0 == (d &= 7), b = h + "/" + v; if (!g && !m) { var w = u.get(b); if (!0 === w || 3 === w && 4 !== d || 4 === w && 3 !== d) throw Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: " + h); u.set(b, !(d > 2) || d); } applyDec(v ? e : e.prototype, p, y, m ? "#" + h : _toPropertyKey(h), d, n, v ? a = a || [] : o = o || [], i, v, m, g, 1 === d, v && m ? s : r); } } return l(o), l(a), i; }(e, t, o, f); return r.length || u(e, f), { e: p, get c() { var t = []; return r.length && [u(applyDec(e, [r], n, e.name, 5, f, t), f), c.bind(null, t, e)]; } }; }
|
|
@@ -46,7 +46,7 @@ class FcrRoomSessionControlImpl {
|
|
|
46
46
|
[_initProto] = _applyDecs(this, [[_startRoomSessionDecs, 2, "startRoomSession"], [_stopRoomSessionDecs, 2, "stopRoomSession"], [_acceptRoomSessionDecs, 2, "acceptRoomSession"], [_rejectRoomSessionDecs, 2, "rejectRoomSession"]], []).e;
|
|
47
47
|
}
|
|
48
48
|
//@internal
|
|
49
|
-
[(_startRoomSessionDecs = [_imports.trace, (0, _validateParams.default)(_schema.fcrRoomSessionParamsSchema, _schema.fcrPrivilegeUserRoleArraySchema.optional())], _stopRoomSessionDecs = [_imports.trace, (0, _validateParams.default)(_schema.stringSchema)], _acceptRoomSessionDecs = [_imports.trace, (0, _validateParams.default)(_schema.fcrSessionBaseSchema, _schema.stringKeyUnknownValueSchema.optional())], _rejectRoomSessionDecs = [_imports.trace, (0, _validateParams.default)(_schema.fcrSessionBaseSchema, _schema.stringKeyUnknownValueSchema.optional())], "logger")] = (_initProto(this), (0, _logger.createLogger)({
|
|
49
|
+
[(_startRoomSessionDecs = [(0, _imports.trace)(['params', 'targetRoles']), (0, _validateParams.default)(_schema.fcrRoomSessionParamsSchema, _schema.fcrPrivilegeUserRoleArraySchema.optional())], _stopRoomSessionDecs = [(0, _imports.trace)(['sessionId']), (0, _validateParams.default)(_schema.stringSchema)], _acceptRoomSessionDecs = [(0, _imports.trace)(['session', 'cause']), (0, _validateParams.default)(_schema.fcrSessionBaseSchema, _schema.stringKeyUnknownValueSchema.optional())], _rejectRoomSessionDecs = [(0, _imports.trace)(['session', 'cause']), (0, _validateParams.default)(_schema.fcrSessionBaseSchema, _schema.stringKeyUnknownValueSchema.optional())], "logger")] = (_initProto(this), (0, _logger.createLogger)({
|
|
50
50
|
prefix: 'FcrRoomSessionControlImpl'
|
|
51
51
|
}));
|
|
52
52
|
//@internal
|
|
@@ -103,18 +103,18 @@ class FcrRoomSessionControlImpl {
|
|
|
103
103
|
this.logger.info(`[RoomSession] put into session schedule: ${session.sessionId}, next ts: ${nextTs}, remain: ${nextTs - Date.now()}ms`);
|
|
104
104
|
return session.sessionId;
|
|
105
105
|
} catch (e) {
|
|
106
|
-
throw (0, _error.generateFcrCoreServerError)(
|
|
106
|
+
throw (0, _error.generateFcrCoreServerError)(_imports.DetailErrorCode.LOCAL_HTTP_REQUEST_FAILED, 'start room session failed', e);
|
|
107
107
|
}
|
|
108
108
|
}
|
|
109
109
|
stopRoomSession(sessionId) {
|
|
110
|
-
this._scheduleMap.delete(sessionId);
|
|
110
|
+
return this._scheduleMap.delete(sessionId);
|
|
111
111
|
}
|
|
112
112
|
async acceptRoomSession(session, cause) {
|
|
113
113
|
if (this._isSessionExpired(session)) {
|
|
114
|
-
throw (0, _error.generateFcrCoreServerError)(
|
|
114
|
+
throw (0, _error.generateFcrCoreServerError)(_imports.DetailErrorCode.EXPIRED, 'accept room session failed: session expired', new Error());
|
|
115
115
|
}
|
|
116
116
|
try {
|
|
117
|
-
this._api.deleteRoomSession({
|
|
117
|
+
await this._api.deleteRoomSession({
|
|
118
118
|
userId: this._userId,
|
|
119
119
|
sessionId: session.sessionId,
|
|
120
120
|
sessionKey: session.sessionKey,
|
|
@@ -125,16 +125,17 @@ class FcrRoomSessionControlImpl {
|
|
|
125
125
|
cause
|
|
126
126
|
}
|
|
127
127
|
});
|
|
128
|
+
return _type.FcrReturnCode.SUCCESS;
|
|
128
129
|
} catch (e) {
|
|
129
|
-
throw (0, _error.generateFcrCoreServerError)(
|
|
130
|
+
throw (0, _error.generateFcrCoreServerError)(_imports.DetailErrorCode.LOCAL_HTTP_REQUEST_FAILED, 'accept room session failed', e);
|
|
130
131
|
}
|
|
131
132
|
}
|
|
132
133
|
async rejectRoomSession(session, cause) {
|
|
133
134
|
if (this._isSessionExpired(session)) {
|
|
134
|
-
throw (0, _error.generateFcrCoreServerError)(
|
|
135
|
+
throw (0, _error.generateFcrCoreServerError)(_imports.DetailErrorCode.EXPIRED, 'reject room session failed: session expired', new Error());
|
|
135
136
|
}
|
|
136
137
|
try {
|
|
137
|
-
this._api.deleteRoomSession({
|
|
138
|
+
await this._api.deleteRoomSession({
|
|
138
139
|
userId: this._userId,
|
|
139
140
|
sessionId: session.sessionId,
|
|
140
141
|
sessionKey: session.sessionKey,
|
|
@@ -145,8 +146,9 @@ class FcrRoomSessionControlImpl {
|
|
|
145
146
|
cause
|
|
146
147
|
}
|
|
147
148
|
});
|
|
149
|
+
return _type.FcrReturnCode.SUCCESS;
|
|
148
150
|
} catch (e) {
|
|
149
|
-
throw (0, _error.generateFcrCoreServerError)(
|
|
151
|
+
throw (0, _error.generateFcrCoreServerError)(_imports.DetailErrorCode.LOCAL_HTTP_REQUEST_FAILED, 'reject room session failed', e);
|
|
150
152
|
}
|
|
151
153
|
}
|
|
152
154
|
addObserver(observer) {
|
|
@@ -172,13 +174,13 @@ class FcrRoomSessionControlImpl {
|
|
|
172
174
|
interval: 0
|
|
173
175
|
};
|
|
174
176
|
if (this._isSessionExpired(session)) {
|
|
175
|
-
this.logger.info(`
|
|
177
|
+
this.logger.info(`room session expired, removed: ${session.sessionId}`);
|
|
176
178
|
this._scheduleMap.delete(session.sessionId);
|
|
177
179
|
continue;
|
|
178
180
|
}
|
|
179
181
|
// check timeout
|
|
180
182
|
if (params.nextTs < Date.now()) {
|
|
181
|
-
this.logger.info(`
|
|
183
|
+
this.logger.info(`ping session: ${session.sessionId}`);
|
|
182
184
|
try {
|
|
183
185
|
const {
|
|
184
186
|
data: {
|
|
@@ -202,7 +204,7 @@ class FcrRoomSessionControlImpl {
|
|
|
202
204
|
this.logger.info(`[RoomSession] refresh session schedule: ${session.sessionId}, next ts: ${nextTs}`);
|
|
203
205
|
}
|
|
204
206
|
} catch (e) {
|
|
205
|
-
this.logger.error(`
|
|
207
|
+
this.logger.error(`ping session failed: ${e}`);
|
|
206
208
|
}
|
|
207
209
|
}
|
|
208
210
|
}
|
|
@@ -211,7 +213,7 @@ class FcrRoomSessionControlImpl {
|
|
|
211
213
|
const session = this._receivedMap.get(key);
|
|
212
214
|
if (this._isSessionExpired(session)) {
|
|
213
215
|
this._receivedMap.delete(key);
|
|
214
|
-
this.logger.info(`
|
|
216
|
+
this.logger.info(`delete session callback: ${key}`);
|
|
215
217
|
}
|
|
216
218
|
}
|
|
217
219
|
}
|
|
@@ -291,7 +293,7 @@ class FcrRoomSessionControlImpl {
|
|
|
291
293
|
return session.timestamp + session.duration * _imports.Duration.second(1) < Date.now();
|
|
292
294
|
}
|
|
293
295
|
_addLogObserver() {
|
|
294
|
-
this.addObserver((0, _logger.generateLogObserver)(this.logger, ['onRoomSessionAccepted', 'onRoomSessionRejected', 'onRoomSessionReceived']));
|
|
296
|
+
this.addObserver((0, _logger.generateLogObserver)(this.logger, [['onRoomSessionAccepted', ['roomId', 'response']], ['onRoomSessionRejected', ['roomId', 'response']], ['onRoomSessionReceived', ['roomId', 'session']]]));
|
|
295
297
|
}
|
|
296
298
|
}
|
|
297
299
|
exports.FcrRoomSessionControlImpl = FcrRoomSessionControlImpl;
|
|
@@ -10,19 +10,19 @@ export interface FcrRoomSessionControl {
|
|
|
10
10
|
* Stops a room session.
|
|
11
11
|
* @param sessionId
|
|
12
12
|
*/
|
|
13
|
-
stopRoomSession(sessionId: string):
|
|
13
|
+
stopRoomSession(sessionId: string): boolean;
|
|
14
14
|
/**
|
|
15
15
|
* Accepts a room session.
|
|
16
16
|
* @param session
|
|
17
17
|
* @param cause
|
|
18
18
|
*/
|
|
19
|
-
acceptRoomSession(session: FcrRoomSession, cause: Record<string, unknown>): Promise<
|
|
19
|
+
acceptRoomSession(session: FcrRoomSession, cause: Record<string, unknown>): Promise<number>;
|
|
20
20
|
/**
|
|
21
21
|
* Rejects a room session.
|
|
22
22
|
* @param session
|
|
23
23
|
* @param cause
|
|
24
24
|
*/
|
|
25
|
-
rejectRoomSession(session: FcrRoomSession, cause: Record<string, unknown>): Promise<
|
|
25
|
+
rejectRoomSession(session: FcrRoomSession, cause: Record<string, unknown>): Promise<number>;
|
|
26
26
|
/**
|
|
27
27
|
* Adds an observer.
|
|
28
28
|
* @param observer
|
|
@@ -32,7 +32,8 @@ var _factory = require("../whiteboard-control-v2/whiteboard-control/factory");
|
|
|
32
32
|
var _factory2 = require("../whiteboard-control-v2/annotation-control/factory");
|
|
33
33
|
var _utils = require("../whiteboard-control/utils");
|
|
34
34
|
var _type2 = require("../type");
|
|
35
|
-
|
|
35
|
+
var _type3 = require("../whiteboard-control/type");
|
|
36
|
+
let _initProto, _startScreenSharingDecs, _updateScreenSharingDecs;
|
|
36
37
|
function _applyDecs(e, t, r, n, o, a) { function i(e, t, r) { return function (n, o) { return r && r(n), e[t].call(n, o); }; } function c(e, t) { for (var r = 0; r < e.length; r++) e[r].call(t); return t; } function s(e, t, r, n) { if ("function" != typeof e && (n || void 0 !== e)) throw new TypeError(t + " must " + (r || "be") + " a function" + (n ? "" : " or undefined")); return e; } function applyDec(e, t, r, n, o, a, c, u, l, f, p, d, h) { function m(e) { if (!h(e)) throw new TypeError("Attempted to access private element on non-instance"); } var y, v = t[0], g = t[3], b = !u; if (!b) { r || Array.isArray(v) || (v = [v]); var w = {}, S = [], A = 3 === o ? "get" : 4 === o || d ? "set" : "value"; f ? (p || d ? w = { get: _setFunctionName(function () { return g(this); }, n, "get"), set: function (e) { t[4](this, e); } } : w[A] = g, p || _setFunctionName(w[A], n, 2 === o ? "" : A)) : p || (w = Object.getOwnPropertyDescriptor(e, n)); } for (var P = e, j = v.length - 1; j >= 0; j -= r ? 2 : 1) { var D = v[j], E = r ? v[j - 1] : void 0, I = {}, O = { kind: ["field", "accessor", "method", "getter", "setter", "class"][o], name: n, metadata: a, addInitializer: function (e, t) { if (e.v) throw Error("attempted to call addInitializer after decoration was finished"); s(t, "An initializer", "be", !0), c.push(t); }.bind(null, I) }; try { if (b) (y = s(D.call(E, P, O), "class decorators", "return")) && (P = y);else { var k, F; O.static = l, O.private = f, f ? 2 === o ? k = function (e) { return m(e), w.value; } : (o < 4 && (k = i(w, "get", m)), 3 !== o && (F = i(w, "set", m))) : (k = function (e) { return e[n]; }, (o < 2 || 4 === o) && (F = function (e, t) { e[n] = t; })); var N = O.access = { has: f ? h.bind() : function (e) { return n in e; } }; if (k && (N.get = k), F && (N.set = F), P = D.call(E, d ? { get: w.get, set: w.set } : w[A], O), d) { if ("object" == typeof P && P) (y = s(P.get, "accessor.get")) && (w.get = y), (y = s(P.set, "accessor.set")) && (w.set = y), (y = s(P.init, "accessor.init")) && S.push(y);else if (void 0 !== P) throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0"); } else s(P, (p ? "field" : "method") + " decorators", "return") && (p ? S.push(P) : w[A] = P); } } finally { I.v = !0; } } return (p || d) && u.push(function (e, t) { for (var r = S.length - 1; r >= 0; r--) t = S[r].call(e, t); return t; }), p || b || (f ? d ? u.push(i(w, "get"), i(w, "set")) : u.push(2 === o ? w[A] : i.call.bind(w[A])) : Object.defineProperty(e, n, w)), P; } function u(e, t) { return Object.defineProperty(e, Symbol.metadata || Symbol.for("Symbol.metadata"), { configurable: !0, enumerable: !0, value: t }); } if (arguments.length >= 6) var l = a[Symbol.metadata || Symbol.for("Symbol.metadata")]; var f = Object.create(null == l ? null : l), p = function (e, t, r, n) { var o, a, i = [], s = function (t) { return _checkInRHS(t) === e; }, u = new Map(); function l(e) { e && i.push(c.bind(null, e)); } for (var f = 0; f < t.length; f++) { var p = t[f]; if (Array.isArray(p)) { var d = p[1], h = p[2], m = p.length > 3, y = 16 & d, v = !!(8 & d), g = 0 == (d &= 7), b = h + "/" + v; if (!g && !m) { var w = u.get(b); if (!0 === w || 3 === w && 4 !== d || 4 === w && 3 !== d) throw Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: " + h); u.set(b, !(d > 2) || d); } applyDec(v ? e : e.prototype, p, y, m ? "#" + h : _toPropertyKey(h), d, n, v ? a = a || [] : o = o || [], i, v, m, g, 1 === d, v && m ? s : r); } } return l(o), l(a), i; }(e, t, o, f); return r.length || u(e, f), { e: p, get c() { var t = []; return r.length && [u(applyDec(e, [r], n, e.name, 5, f, t), f), c.bind(null, t, e)]; } }; }
|
|
37
38
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
38
39
|
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
@@ -40,9 +41,9 @@ function _setFunctionName(e, t, n) { "symbol" == typeof t && (t = (t = t.descrip
|
|
|
40
41
|
function _checkInRHS(e) { if (Object(e) !== e) throw TypeError("right-hand side of 'in' should be an object, got " + (null !== e ? typeof e : "null")); return e; }
|
|
41
42
|
class FcrSharingControlImpl {
|
|
42
43
|
static {
|
|
43
|
-
[_initProto] = _applyDecs(this, [[
|
|
44
|
+
[_initProto] = _applyDecs(this, [[_startScreenSharingDecs, 2, "startScreenSharing"], [_imports.trace, 2, "startWhiteboard"], [_updateScreenSharingDecs, 2, "updateScreenSharing"], [_imports.trace, 2, "stop"], [_imports.trace, 2, "getScreenSharingState"]], []).e;
|
|
44
45
|
}
|
|
45
|
-
logger = (_initProto(this), (0, _logger.createLogger)({
|
|
46
|
+
[(_startScreenSharingDecs = (0, _imports.trace)(['config', 'size', 'labels']), _updateScreenSharingDecs = (0, _imports.trace)(['enableAnnotation']), "logger")] = (_initProto(this), (0, _logger.createLogger)({
|
|
46
47
|
prefix: 'FcrSharingControlImpl'
|
|
47
48
|
}));
|
|
48
49
|
_observable = new _imports.AgoraObservable();
|
|
@@ -152,7 +153,12 @@ class FcrSharingControlImpl {
|
|
|
152
153
|
const hasOperationPrivilege = (0, _utils.hasAnnotationWritePermission)(permissions);
|
|
153
154
|
this._annotationControl = new _factory2.FcrAnnotationControlFactoryImpl().createForMainProcess(
|
|
154
155
|
// @ts-ignore
|
|
155
|
-
this._engine._rtmClient._client, hasOperationPrivilege, annotationConfig,
|
|
156
|
+
this._engine._rtmClient._client, hasOperationPrivilege, annotationConfig, {
|
|
157
|
+
sceneId: this._scene.sceneId,
|
|
158
|
+
getAnnotationState: () => {
|
|
159
|
+
return this._scene.getScenePropertiesByKeyPath('widgets.annotation.state') ?? _type3.FcrBoardPropertiesState.INACTIVE;
|
|
160
|
+
}
|
|
161
|
+
}, this._api);
|
|
156
162
|
}
|
|
157
163
|
return this._annotationControl;
|
|
158
164
|
}
|
|
@@ -228,7 +234,7 @@ class FcrSharingControlImpl {
|
|
|
228
234
|
if (this.getScreenSharingState() === _type.FcrScreenSharingState.END) {
|
|
229
235
|
const isMeSharing = ownerId === this._userControl.getLocalUser().userId;
|
|
230
236
|
if (isMeSharing) {
|
|
231
|
-
this.logger.info('
|
|
237
|
+
this.logger.info('on stream removed, clean before terminal Annotation app');
|
|
232
238
|
this._annotationControl.getMainWindow()?.clean();
|
|
233
239
|
}
|
|
234
240
|
}
|
|
@@ -296,12 +302,12 @@ class FcrSharingControlImpl {
|
|
|
296
302
|
}
|
|
297
303
|
_getScreenShareStreamByUuid() {
|
|
298
304
|
const screenStreamUuid = this._scene.getScenePropertiesByKeyPath('widgets.annotation.extra.screenStreamUuid');
|
|
299
|
-
this.logger.info('
|
|
305
|
+
this.logger.info('scene properties screenStreamUuid: ', screenStreamUuid);
|
|
300
306
|
const stream = this._streamControl.getStreamByStreamId(screenStreamUuid);
|
|
301
307
|
return typeof stream === 'undefined' ? null : stream;
|
|
302
308
|
}
|
|
303
309
|
_addLogObserver() {
|
|
304
|
-
this.addObserver((0, _logger.generateLogObserver)(this.logger, ['onScreenSharingUpdated', 'onWhiteboardStarted', 'onWhiteboardEnded']));
|
|
310
|
+
this.addObserver((0, _logger.generateLogObserver)(this.logger, [['onScreenSharingUpdated', ['streamInfo', 'state']], ['onWhiteboardStarted', ['ownerId', 'operatorUser']], ['onWhiteboardEnded', ['reason', 'operatorUser']]]));
|
|
305
311
|
}
|
|
306
312
|
}
|
|
307
313
|
exports.FcrSharingControlImpl = FcrSharingControlImpl;
|
|
@@ -35,7 +35,7 @@ var _error = require("../../utilities/error");
|
|
|
35
35
|
var _logger = require("../../utilities/logger");
|
|
36
36
|
var _validateParams = _interopRequireDefault(require("../../utilities/validate-params"));
|
|
37
37
|
var _schema = require("../../schema");
|
|
38
|
-
let _initProto, _addLocalStreamsDecs, _bindLocalStreamsDecs, _updatePublishPrivilegeOfStreamsDecs, _removeStreamsDecs, _setVideoEncoderConfigDecs, _setScreenScenarioDecs, _startRenderRemoteVideoStreamDecs, _stopRenderRemoteVideoStreamDecs, _startPlayRemoteAudioStreamDecs, _stopPlayRemoteAudioStreamDecs, _takeSnapshotDecs, _addLocalScreenStreamDecs, _adjustRemoteAudioStreamVolumeDecs, _mergeAudioStreamDecs, _splitAudioStreamDecs;
|
|
38
|
+
let _initProto, _addLocalStreamsDecs, _bindLocalStreamsDecs, _updatePublishPrivilegeOfStreamsDecs, _removeStreamsDecs, _setVideoEncoderConfigDecs, _setDualStreamModeDecs, _setScreenScenarioDecs, _startRenderRemoteVideoStreamDecs, _stopRenderRemoteVideoStreamDecs, _startPlayRemoteAudioStreamDecs, _stopPlayRemoteAudioStreamDecs, _takeSnapshotDecs, _addLocalScreenStreamDecs, _adjustRemoteAudioStreamVolumeDecs, _mergeAudioStreamDecs, _splitAudioStreamDecs;
|
|
39
39
|
function _applyDecs(e, t, r, n, o, a) { function i(e, t, r) { return function (n, o) { return r && r(n), e[t].call(n, o); }; } function c(e, t) { for (var r = 0; r < e.length; r++) e[r].call(t); return t; } function s(e, t, r, n) { if ("function" != typeof e && (n || void 0 !== e)) throw new TypeError(t + " must " + (r || "be") + " a function" + (n ? "" : " or undefined")); return e; } function applyDec(e, t, r, n, o, a, c, u, l, f, p, d, h) { function m(e) { if (!h(e)) throw new TypeError("Attempted to access private element on non-instance"); } var y, v = t[0], g = t[3], b = !u; if (!b) { r || Array.isArray(v) || (v = [v]); var w = {}, S = [], A = 3 === o ? "get" : 4 === o || d ? "set" : "value"; f ? (p || d ? w = { get: _setFunctionName(function () { return g(this); }, n, "get"), set: function (e) { t[4](this, e); } } : w[A] = g, p || _setFunctionName(w[A], n, 2 === o ? "" : A)) : p || (w = Object.getOwnPropertyDescriptor(e, n)); } for (var P = e, j = v.length - 1; j >= 0; j -= r ? 2 : 1) { var D = v[j], E = r ? v[j - 1] : void 0, I = {}, O = { kind: ["field", "accessor", "method", "getter", "setter", "class"][o], name: n, metadata: a, addInitializer: function (e, t) { if (e.v) throw Error("attempted to call addInitializer after decoration was finished"); s(t, "An initializer", "be", !0), c.push(t); }.bind(null, I) }; try { if (b) (y = s(D.call(E, P, O), "class decorators", "return")) && (P = y);else { var k, F; O.static = l, O.private = f, f ? 2 === o ? k = function (e) { return m(e), w.value; } : (o < 4 && (k = i(w, "get", m)), 3 !== o && (F = i(w, "set", m))) : (k = function (e) { return e[n]; }, (o < 2 || 4 === o) && (F = function (e, t) { e[n] = t; })); var N = O.access = { has: f ? h.bind() : function (e) { return n in e; } }; if (k && (N.get = k), F && (N.set = F), P = D.call(E, d ? { get: w.get, set: w.set } : w[A], O), d) { if ("object" == typeof P && P) (y = s(P.get, "accessor.get")) && (w.get = y), (y = s(P.set, "accessor.set")) && (w.set = y), (y = s(P.init, "accessor.init")) && S.push(y);else if (void 0 !== P) throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0"); } else s(P, (p ? "field" : "method") + " decorators", "return") && (p ? S.push(P) : w[A] = P); } } finally { I.v = !0; } } return (p || d) && u.push(function (e, t) { for (var r = S.length - 1; r >= 0; r--) t = S[r].call(e, t); return t; }), p || b || (f ? d ? u.push(i(w, "get"), i(w, "set")) : u.push(2 === o ? w[A] : i.call.bind(w[A])) : Object.defineProperty(e, n, w)), P; } function u(e, t) { return Object.defineProperty(e, Symbol.metadata || Symbol.for("Symbol.metadata"), { configurable: !0, enumerable: !0, value: t }); } if (arguments.length >= 6) var l = a[Symbol.metadata || Symbol.for("Symbol.metadata")]; var f = Object.create(null == l ? null : l), p = function (e, t, r, n) { var o, a, i = [], s = function (t) { return _checkInRHS(t) === e; }, u = new Map(); function l(e) { e && i.push(c.bind(null, e)); } for (var f = 0; f < t.length; f++) { var p = t[f]; if (Array.isArray(p)) { var d = p[1], h = p[2], m = p.length > 3, y = 16 & d, v = !!(8 & d), g = 0 == (d &= 7), b = h + "/" + v; if (!g && !m) { var w = u.get(b); if (!0 === w || 3 === w && 4 !== d || 4 === w && 3 !== d) throw Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: " + h); u.set(b, !(d > 2) || d); } applyDec(v ? e : e.prototype, p, y, m ? "#" + h : _toPropertyKey(h), d, n, v ? a = a || [] : o = o || [], i, v, m, g, 1 === d, v && m ? s : r); } } return l(o), l(a), i; }(e, t, o, f); return r.length || u(e, f), { e: p, get c() { var t = []; return r.length && [u(applyDec(e, [r], n, e.name, 5, f, t), f), c.bind(null, t, e)]; } }; }
|
|
40
40
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
41
41
|
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
@@ -46,10 +46,10 @@ function _checkInRHS(e) { if (Object(e) !== e) throw TypeError("right-hand side
|
|
|
46
46
|
*/
|
|
47
47
|
class FcrStreamControlImpl {
|
|
48
48
|
static {
|
|
49
|
-
[_initProto] = _applyDecs(this, [[_imports.bound, 2, "getStreams"], [_imports.bound, 2, "getStreamList"], [_imports.bound, 2, "getStreamsByUserId"], [_imports.bound, 2, "getStreamByStreamId"], [_addLocalStreamsDecs, 2, "addLocalStreams"], [_bindLocalStreamsDecs, 2, "bindLocalStreams"], [_updatePublishPrivilegeOfStreamsDecs, 2, "updatePublishPrivilegeOfStreams"], [_removeStreamsDecs, 2, "removeStreams"], [_setVideoEncoderConfigDecs, 2, "setVideoEncoderConfig"], [
|
|
49
|
+
[_initProto] = _applyDecs(this, [[_imports.bound, 2, "getStreams"], [_imports.bound, 2, "getStreamList"], [_imports.bound, 2, "getStreamsByUserId"], [_imports.bound, 2, "getStreamByStreamId"], [_addLocalStreamsDecs, 2, "addLocalStreams"], [_bindLocalStreamsDecs, 2, "bindLocalStreams"], [_updatePublishPrivilegeOfStreamsDecs, 2, "updatePublishPrivilegeOfStreams"], [_removeStreamsDecs, 2, "removeStreams"], [_setVideoEncoderConfigDecs, 2, "setVideoEncoderConfig"], [_setDualStreamModeDecs, 2, "setDualStreamMode"], [_setScreenScenarioDecs, 2, "setScreenScenario"], [_startRenderRemoteVideoStreamDecs, 2, "startRenderRemoteVideoStream"], [_stopRenderRemoteVideoStreamDecs, 2, "stopRenderRemoteVideoStream"], [_startPlayRemoteAudioStreamDecs, 2, "startPlayRemoteAudioStream"], [_stopPlayRemoteAudioStreamDecs, 2, "stopPlayRemoteAudioStream"], [_takeSnapshotDecs, 2, "takeSnapshot"], [_addLocalScreenStreamDecs, 2, "addLocalScreenStream"], [[_imports.bound, _imports.trace], 2, "removeScreenStream"], [_adjustRemoteAudioStreamVolumeDecs, 2, "adjustRemoteAudioStreamVolume"], [_mergeAudioStreamDecs, 2, "mergeAudioStream"], [_splitAudioStreamDecs, 2, "splitAudioStream"]], []).e;
|
|
50
50
|
}
|
|
51
51
|
//@internal
|
|
52
|
-
[(_addLocalStreamsDecs = [_imports.bound, _imports.trace, (0, _validateParams.default)(_schema.fcrLocalStreamCreateArrayConfigSchema)], _bindLocalStreamsDecs = [_imports.bound, _imports.trace, (0, _validateParams.default)(_schema.fcrStreamBindConfigArrySchema)], _updatePublishPrivilegeOfStreamsDecs = [_imports.bound, _imports.trace, (0, _validateParams.default)(_schema.fcrUpdateStreamCustomSchema, _schema.fcrUpdateStreamPrivilegeScopeSchema.optional())], _removeStreamsDecs = [_imports.bound, _imports.trace, (0, _validateParams.default)(_schema.stringArraySchema)], _setVideoEncoderConfigDecs = [_imports.bound, _imports.trace, (0, _validateParams.default)(_schema.stringSchema, _schema.agoraRtcVideoEncoderConfigurationSchema, _schema.fcrVideoStreamTypeSchema)], _setScreenScenarioDecs = [_imports.bound, _imports.trace, (0, _validateParams.default)(_schema.fcrScreenScenarioTypeSchema)], _startRenderRemoteVideoStreamDecs = [_imports.bound, _imports.trace, (0, _validateParams.default)(_schema.stringSchema, _schema.fcrVideoStreamTypeSchema, _schema.fcrRenderConfigSchema, (0, _schema.createUnionSchema)([_schema.fcrRenderViewSchema, _imports.objectSchema]))], _stopRenderRemoteVideoStreamDecs = [_imports.bound, _imports.trace, (0, _validateParams.default)(_schema.stringSchema, _schema.fcrRenderViewSchema)], _startPlayRemoteAudioStreamDecs = [_imports.bound, _imports.trace, (0, _validateParams.default)(_schema.stringSchema)], _stopPlayRemoteAudioStreamDecs = [_imports.bound, _imports.trace, (0, _validateParams.default)(_schema.stringSchema)], _takeSnapshotDecs = [_imports.bound, _imports.trace, (0, _validateParams.default)(_schema.stringSchema, _schema.stringSchema)], _addLocalScreenStreamDecs = [_imports.bound, _imports.trace, (0, _validateParams.default)(_schema.fcrScreenStreamCreateConfigSchema, _schema.fcrSizeSchema)], _adjustRemoteAudioStreamVolumeDecs = [_imports.bound, _imports.trace, (0, _validateParams.default)(_schema.stringSchema, _schema.numberSchema)], _mergeAudioStreamDecs = [_imports.bound, _imports.trace, (0, _validateParams.default)(_schema.stringSchema)], _splitAudioStreamDecs = [_imports.bound, _imports.trace, (0, _validateParams.default)(_schema.stringSchema)], "logger")] = (_initProto(this), (0, _logger.createLogger)({
|
|
52
|
+
[(_addLocalStreamsDecs = [_imports.bound, (0, _imports.trace)(['streams']), (0, _validateParams.default)(_schema.fcrLocalStreamCreateArrayConfigSchema)], _bindLocalStreamsDecs = [_imports.bound, (0, _imports.trace)(['streams']), (0, _validateParams.default)(_schema.fcrStreamBindConfigArrySchema)], _updatePublishPrivilegeOfStreamsDecs = [_imports.bound, _imports.trace, (0, _validateParams.default)(_schema.fcrUpdateStreamCustomSchema, _schema.fcrUpdateStreamPrivilegeScopeSchema.optional())], _removeStreamsDecs = [_imports.bound, (0, _imports.trace)(['streams']), (0, _validateParams.default)(_schema.stringArraySchema)], _setVideoEncoderConfigDecs = [_imports.bound, (0, _imports.trace)(['streamId', 'config', 'streamType']), (0, _validateParams.default)(_schema.stringSchema, _schema.agoraRtcVideoEncoderConfigurationSchema, _schema.fcrVideoStreamTypeSchema)], _setDualStreamModeDecs = [_imports.bound, (0, _imports.trace)(['streamId', 'enable'])], _setScreenScenarioDecs = [_imports.bound, (0, _imports.trace)(['type']), (0, _validateParams.default)(_schema.fcrScreenScenarioTypeSchema)], _startRenderRemoteVideoStreamDecs = [_imports.bound, (0, _imports.trace)(['streamId', 'type', 'config', 'element']), (0, _validateParams.default)(_schema.stringSchema, _schema.fcrVideoStreamTypeSchema, _schema.fcrRenderConfigSchema, (0, _schema.createUnionSchema)([_schema.fcrRenderViewSchema, _imports.objectSchema]))], _stopRenderRemoteVideoStreamDecs = [_imports.bound, (0, _imports.trace)(['streamId', 'element']), (0, _validateParams.default)(_schema.stringSchema, _schema.fcrRenderViewSchema)], _startPlayRemoteAudioStreamDecs = [_imports.bound, (0, _imports.trace)(['streamId']), (0, _validateParams.default)(_schema.stringSchema)], _stopPlayRemoteAudioStreamDecs = [_imports.bound, (0, _imports.trace)(['streamId']), (0, _validateParams.default)(_schema.stringSchema)], _takeSnapshotDecs = [_imports.bound, (0, _imports.trace)(['streamId', 'filePath']), (0, _validateParams.default)(_schema.stringSchema, _schema.stringSchema)], _addLocalScreenStreamDecs = [_imports.bound, (0, _imports.trace)(['config', 'size']), (0, _validateParams.default)(_schema.fcrScreenStreamCreateConfigSchema, _schema.fcrSizeSchema)], _adjustRemoteAudioStreamVolumeDecs = [_imports.bound, (0, _imports.trace)(['streamId', 'volume']), (0, _validateParams.default)(_schema.stringSchema, _schema.numberSchema)], _mergeAudioStreamDecs = [_imports.bound, (0, _imports.trace)(['targetUserId']), (0, _validateParams.default)(_schema.stringSchema)], _splitAudioStreamDecs = [_imports.bound, (0, _imports.trace)(['userId']), (0, _validateParams.default)(_schema.stringSchema)], "logger")] = (_initProto(this), (0, _logger.createLogger)({
|
|
53
53
|
prefix: 'FcrStreamControlImpl'
|
|
54
54
|
}));
|
|
55
55
|
//@internal
|
|
@@ -191,7 +191,7 @@ class FcrStreamControlImpl {
|
|
|
191
191
|
videoSourceUuid: config.videoSourceId,
|
|
192
192
|
audioSourceUuid: config.audioSourceId,
|
|
193
193
|
...(0, _imports.convertStreamTypeToPublishState)(config.streamType)
|
|
194
|
-
}))),
|
|
194
|
+
}))), _imports.ErrorModuleCode.FCR_ROOM_STREAM, 'add local streams failed');
|
|
195
195
|
|
|
196
196
|
// 处理需要 token 的流
|
|
197
197
|
this._handleStreamTokensPreparation(streams, streamCreateResult.data);
|
|
@@ -234,7 +234,7 @@ class FcrStreamControlImpl {
|
|
|
234
234
|
streamUuid: streamId,
|
|
235
235
|
audioState: this._getPublishStateByPrivilege(privileges[streamId].audioPrivilege),
|
|
236
236
|
videoState: this._getPublishStateByPrivilege(privileges[streamId].videoPrivilege)
|
|
237
|
-
}))),
|
|
237
|
+
}))), _imports.ErrorModuleCode.FCR_ROOM_STREAM, 'update publish privilege of streams failed');
|
|
238
238
|
} else if (args.length === 2) {
|
|
239
239
|
const [privilege, scope] = args;
|
|
240
240
|
const targetRteRoles = scope.targetRoleType.map(role => _type.FcrUserRoleToStringMap[role]);
|
|
@@ -258,13 +258,13 @@ class FcrStreamControlImpl {
|
|
|
258
258
|
videoState,
|
|
259
259
|
audioState,
|
|
260
260
|
condition
|
|
261
|
-
}),
|
|
261
|
+
}), _imports.ErrorModuleCode.FCR_ROOM_STREAM, 'update publish privilege of streams failed');
|
|
262
262
|
}
|
|
263
263
|
}
|
|
264
264
|
async removeStreams(streams) {
|
|
265
265
|
const res = await (0, _error.handleRequestError)(() => this._api.deleteStreamBatch(this._scene.sceneId, streams.map(streamUuid => ({
|
|
266
266
|
streamUuid
|
|
267
|
-
}))),
|
|
267
|
+
}))), _imports.ErrorModuleCode.FCR_ROOM_STREAM, 'remove streams failed');
|
|
268
268
|
streams.forEach(streamUuid => {
|
|
269
269
|
this._scene.localUser.removePreparePublishStream(streamUuid);
|
|
270
270
|
});
|
|
@@ -287,6 +287,7 @@ class FcrStreamControlImpl {
|
|
|
287
287
|
this._scene.streamPlayer.startRenderRemoteVideoStream(streamId, config.renderMode, config.isMirror, element);
|
|
288
288
|
const viewId = this._subscribedStreamsControl.getViewId(element);
|
|
289
289
|
this._subscribedStreamsControl.bind(viewId, streamId);
|
|
290
|
+
return _type.FcrReturnCode.SUCCESS;
|
|
290
291
|
} catch (error) {
|
|
291
292
|
this.logger.error(`[FcrStreamControl][start-render-remote-video-stream] render failed, streamId: ${streamId}, error: ${error}, parameters: ${parameters}, duration: ${Date.now() - startTime}ms`);
|
|
292
293
|
throw error;
|
|
@@ -305,16 +306,17 @@ class FcrStreamControlImpl {
|
|
|
305
306
|
} else {
|
|
306
307
|
this.logger.info(`[FcrStreamControl][unsubscribe-remote-video-stream] still has other views, do not unsubscribe, streamId: ${streamId}, parameters: ${parameters}, duration: ${Date.now() - startTime}ms`);
|
|
307
308
|
}
|
|
309
|
+
return _type.FcrReturnCode.SUCCESS;
|
|
308
310
|
} catch (error) {
|
|
309
311
|
this.logger.error(`[FcrStreamControl][stop-render-remote-video-stream] stop render failed, streamId: ${streamId}, error: ${error}, parameters: ${parameters}, duration: ${Date.now() - startTime}ms`);
|
|
310
312
|
throw error;
|
|
311
313
|
}
|
|
312
314
|
}
|
|
313
315
|
startPlayRemoteAudioStream(streamId) {
|
|
314
|
-
this._scene.streamPlayer.startPlayRemoteAudioStream(streamId);
|
|
316
|
+
return this._scene.streamPlayer.startPlayRemoteAudioStream(streamId);
|
|
315
317
|
}
|
|
316
318
|
stopPlayRemoteAudioStream(streamId) {
|
|
317
|
-
this._scene.streamPlayer.stopPlayRemoteAudioStream(streamId);
|
|
319
|
+
return this._scene.streamPlayer.stopPlayRemoteAudioStream(streamId);
|
|
318
320
|
}
|
|
319
321
|
takeSnapshot(streamId, filePath) {
|
|
320
322
|
return this._scene.streamPlayer.takeSnapshot(streamId, filePath);
|
|
@@ -343,7 +345,7 @@ class FcrStreamControlImpl {
|
|
|
343
345
|
}
|
|
344
346
|
}
|
|
345
347
|
}
|
|
346
|
-
}),
|
|
348
|
+
}), _imports.ErrorModuleCode.FCR_ROOM_STREAM, 'add local screen stream failed');
|
|
347
349
|
const {
|
|
348
350
|
data: {
|
|
349
351
|
rtcToken: token,
|
|
@@ -364,7 +366,7 @@ class FcrStreamControlImpl {
|
|
|
364
366
|
roomId: this._scene.sceneId,
|
|
365
367
|
userId: this._scene.localUser.getLocalUserId()
|
|
366
368
|
});
|
|
367
|
-
},
|
|
369
|
+
}, _imports.ErrorModuleCode.FCR_ROOM_STREAM, 'remove screen stream failed');
|
|
368
370
|
if (this._screenStreamId) {
|
|
369
371
|
this._scene.removeLocalStreamLabel(this._screenStreamId);
|
|
370
372
|
this._scene.localUser.removePreparePublishStream(this._screenStreamId);
|
|
@@ -372,17 +374,17 @@ class FcrStreamControlImpl {
|
|
|
372
374
|
return res;
|
|
373
375
|
}
|
|
374
376
|
adjustRemoteAudioStreamVolume(streamId, volume) {
|
|
375
|
-
this._scene.streamPlayer.adjustRemoteAudioStreamVolume(streamId, volume);
|
|
377
|
+
return this._scene.streamPlayer.adjustRemoteAudioStreamVolume(streamId, volume);
|
|
376
378
|
}
|
|
377
379
|
mergeAudioStream(targetUserId) {
|
|
378
380
|
return (0, _error.handleRequestError)(() => this._api.mergeAudioStream(targetUserId, {
|
|
379
381
|
roomId: this._scene.sceneId
|
|
380
|
-
}),
|
|
382
|
+
}), _imports.ErrorModuleCode.FCR_ROOM_STREAM, 'merge audio stream failed');
|
|
381
383
|
}
|
|
382
384
|
splitAudioStream(userId) {
|
|
383
385
|
return (0, _error.handleRequestError)(() => this._api.splitAudioStream(userId, {
|
|
384
386
|
roomId: this._scene.sceneId
|
|
385
|
-
}),
|
|
387
|
+
}), _imports.ErrorModuleCode.FCR_ROOM_STREAM, 'split audio stream failed');
|
|
386
388
|
}
|
|
387
389
|
|
|
388
390
|
// @bound
|
|
@@ -467,9 +469,9 @@ class FcrStreamControlImpl {
|
|
|
467
469
|
// 'onLocalAudioStatsUpdated',
|
|
468
470
|
// 'onRemoteVideoStatsUpdated',
|
|
469
471
|
// 'onRemoteAudioStatsUpdated',
|
|
470
|
-
'onFirstRemoteVideoFrameRendered',
|
|
472
|
+
['onFirstRemoteVideoFrameRendered', ['roomId', 'streamId']],
|
|
471
473
|
// 'onStreamVolumeIndicationUpdated',
|
|
472
|
-
'onStreamsAdded', 'onStreamsRemoved', 'onStreamsUpdated']));
|
|
474
|
+
['onStreamsAdded', ['roomId', 'events']], ['onStreamsRemoved', ['roomId', 'events']], ['onStreamsUpdated', ['roomId', 'events']]]));
|
|
473
475
|
}
|
|
474
476
|
}
|
|
475
477
|
exports.FcrStreamControlImpl = FcrStreamControlImpl;
|