fcr-core 3.10.0-beta.1 → 3.10.0-rc.2

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.
Files changed (155) hide show
  1. package/lib/engine/index.d.ts +10 -4
  2. package/lib/engine/index.js +49 -13
  3. package/lib/engine/type.d.ts +13 -3
  4. package/lib/imports.d.ts +4 -7
  5. package/lib/imports.js +13 -0
  6. package/lib/index.d.ts +2 -1
  7. package/lib/index.js +3 -2
  8. package/lib/media-control/desktop.js +10 -1
  9. package/lib/media-control/mobile.js +13 -3
  10. package/lib/media-control/type.d.ts +7 -0
  11. package/lib/monitor-control/index.js +5 -2
  12. package/lib/monitor-control/type.d.ts +4 -0
  13. package/lib/peer-session/index.d.ts +4 -1
  14. package/lib/peer-session/index.js +197 -30
  15. package/lib/peer-session/type.d.ts +29 -0
  16. package/lib/plugins/chat/chatroom.js +5 -1
  17. package/lib/remote-control/index.d.ts +31 -0
  18. package/lib/remote-control/index.js +702 -0
  19. package/lib/remote-control/type.d.ts +115 -0
  20. package/lib/remote-control/type.js +45 -0
  21. package/lib/room-control/ability-control/index.js +2 -1
  22. package/lib/room-control/ability-control/type.d.ts +3 -1
  23. package/lib/room-control/ability-control/type.js +1 -0
  24. package/lib/room-control/application-control/index.d.ts +32 -0
  25. package/lib/room-control/application-control/index.js +264 -0
  26. package/lib/room-control/application-control/type.d.ts +41 -0
  27. package/lib/room-control/application-control/type.js +12 -0
  28. package/lib/room-control/chatroom-control/type.d.ts +4 -0
  29. package/lib/room-control/group-control/index.d.ts +2 -0
  30. package/lib/room-control/group-control/index.js +11 -3
  31. package/lib/room-control/helpers/board-init-info-helper.d.ts +8 -0
  32. package/lib/room-control/helpers/board-init-info-helper.js +73 -0
  33. package/lib/room-control/index.js +74 -9
  34. package/lib/room-control/infinity-room-control/index.d.ts +1 -0
  35. package/lib/room-control/infinity-room-control/index.js +130 -0
  36. package/lib/room-control/infinity-room-control/type.d.ts +6 -0
  37. package/lib/room-control/infinity-room-control/type.js +5 -0
  38. package/lib/room-control/interpreter-control/index.js +34 -29
  39. package/lib/room-control/interpreter-control/types.d.ts +1 -0
  40. package/lib/room-control/mainroom-control/index.js +9 -69
  41. package/lib/room-control/privilege-control/index.js +85 -5
  42. package/lib/room-control/privilege-control/type.d.ts +101 -1
  43. package/lib/room-control/privilege-control/type.js +48 -1
  44. package/lib/room-control/room-connector-control/index.js +9 -4
  45. package/lib/room-control/room-connector-control/type.d.ts +4 -0
  46. package/lib/room-control/room-control-factory.js +4 -2
  47. package/lib/room-control/room-session/index.js +26 -9
  48. package/lib/room-control/room-session/type.d.ts +4 -0
  49. package/lib/room-control/shared-cache.d.ts +11 -1
  50. package/lib/room-control/shared-cache.js +34 -0
  51. package/lib/room-control/sharing-control/index.d.ts +6 -2
  52. package/lib/room-control/sharing-control/index.js +89 -49
  53. package/lib/room-control/stream-control/index.js +55 -37
  54. package/lib/room-control/stream-control/type.d.ts +7 -3
  55. package/lib/room-control/stt-control/index.js +4 -1
  56. package/lib/room-control/type.d.ts +32 -2
  57. package/lib/room-control/type.js +1 -0
  58. package/lib/room-control/user-control/index.js +51 -24
  59. package/lib/room-control/user-control/type.d.ts +36 -1
  60. package/lib/room-control/whiteboard-control-v1/index.js +5 -1
  61. package/lib/room-control/whiteboard-control-v1/type.d.ts +4 -0
  62. package/lib/room-control/whiteboard-control-v2/annotation-control/control.d.ts +7 -5
  63. package/lib/room-control/whiteboard-control-v2/annotation-control/control.js +37 -8
  64. package/lib/room-control/whiteboard-control-v2/annotation-control/factory.d.ts +2 -2
  65. package/lib/room-control/whiteboard-control-v2/annotation-control/factory.js +12 -8
  66. package/lib/room-control/whiteboard-control-v2/annotation-control/type.d.ts +5 -2
  67. package/lib/room-control/whiteboard-control-v2/base/index.d.ts +7 -6
  68. package/lib/room-control/whiteboard-control-v2/base/index.js +55 -52
  69. package/lib/room-control/whiteboard-control-v2/base/main-window.d.ts +10 -2
  70. package/lib/room-control/whiteboard-control-v2/base/main-window.js +32 -7
  71. package/lib/room-control/whiteboard-control-v2/type.d.ts +11 -6
  72. package/lib/room-control/whiteboard-control-v2/utils.d.ts +1 -1
  73. package/lib/room-control/whiteboard-control-v2/whiteboard-control/control.d.ts +4 -2
  74. package/lib/room-control/whiteboard-control-v2/whiteboard-control/control.js +22 -7
  75. package/lib/room-control/whiteboard-control-v2/whiteboard-control/factory.d.ts +2 -2
  76. package/lib/room-control/whiteboard-control-v2/whiteboard-control/factory.js +13 -8
  77. package/lib/room-control/whiteboard-control-v2/whiteboard-control/type.d.ts +5 -2
  78. package/lib/room-router/index.js +3 -2
  79. package/lib/schema.d.ts +133 -53
  80. package/lib/schema.js +41 -22
  81. package/lib/service/api.d.ts +92 -6
  82. package/lib/service/api.js +212 -13
  83. package/lib/service/type.d.ts +7 -0
  84. package/lib/service/type.js +11 -1
  85. package/lib/struct.d.ts +31 -0
  86. package/lib/struct.js +75 -0
  87. package/lib/type.d.ts +7 -30
  88. package/lib/type.js +16 -62
  89. package/lib/utilities/error-helpers.d.ts +3 -1
  90. package/lib/utilities/error-helpers.js +2 -0
  91. package/lib/utilities/error.d.ts +2 -2
  92. package/lib/utilities/error.js +5 -5
  93. package/lib/utilities/join-helper.js +5 -4
  94. package/lib/utilities/parameters.d.ts +1 -0
  95. package/lib/utilities/parameters.js +5 -1
  96. package/lib/utilities/scene-properties.d.ts +6 -0
  97. package/lib/utilities/scene-properties.js +9 -0
  98. package/lib/utilities/shared-storage.d.ts +8 -5
  99. package/lib/utilities/shared-storage.js +19 -2
  100. package/lib/utilities/stream.d.ts +0 -2
  101. package/lib/utilities/video-encoder-config.d.ts +2 -2
  102. package/lib/utilities/video-encoder-config.js +19 -9
  103. package/lib-es/engine/index.js +50 -14
  104. package/lib-es/imports.js +3 -2
  105. package/lib-es/index.js +2 -1
  106. package/lib-es/media-control/desktop.js +10 -1
  107. package/lib-es/media-control/mobile.js +13 -3
  108. package/lib-es/monitor-control/index.js +5 -2
  109. package/lib-es/peer-session/index.js +199 -32
  110. package/lib-es/plugins/chat/chatroom.js +5 -1
  111. package/lib-es/remote-control/index.js +695 -0
  112. package/lib-es/remote-control/type.js +41 -0
  113. package/lib-es/room-control/ability-control/index.js +2 -1
  114. package/lib-es/room-control/ability-control/type.js +1 -0
  115. package/lib-es/room-control/application-control/index.js +257 -0
  116. package/lib-es/room-control/application-control/type.js +6 -0
  117. package/lib-es/room-control/group-control/index.js +11 -3
  118. package/lib-es/room-control/helpers/board-init-info-helper.js +67 -0
  119. package/lib-es/room-control/index.js +76 -10
  120. package/lib-es/room-control/infinity-room-control/index.js +123 -0
  121. package/lib-es/room-control/infinity-room-control/type.js +1 -0
  122. package/lib-es/room-control/interpreter-control/index.js +34 -29
  123. package/lib-es/room-control/mainroom-control/index.js +11 -71
  124. package/lib-es/room-control/privilege-control/index.js +86 -6
  125. package/lib-es/room-control/privilege-control/type.js +47 -0
  126. package/lib-es/room-control/room-connector-control/index.js +9 -4
  127. package/lib-es/room-control/room-control-factory.js +4 -2
  128. package/lib-es/room-control/room-session/index.js +26 -9
  129. package/lib-es/room-control/shared-cache.js +34 -0
  130. package/lib-es/room-control/sharing-control/index.js +86 -46
  131. package/lib-es/room-control/stream-control/index.js +56 -38
  132. package/lib-es/room-control/stt-control/index.js +4 -1
  133. package/lib-es/room-control/type.js +1 -0
  134. package/lib-es/room-control/user-control/index.js +51 -24
  135. package/lib-es/room-control/whiteboard-control-v1/index.js +5 -1
  136. package/lib-es/room-control/whiteboard-control-v2/annotation-control/control.js +38 -9
  137. package/lib-es/room-control/whiteboard-control-v2/annotation-control/factory.js +12 -8
  138. package/lib-es/room-control/whiteboard-control-v2/base/index.js +55 -52
  139. package/lib-es/room-control/whiteboard-control-v2/base/main-window.js +32 -7
  140. package/lib-es/room-control/whiteboard-control-v2/whiteboard-control/control.js +22 -7
  141. package/lib-es/room-control/whiteboard-control-v2/whiteboard-control/factory.js +13 -8
  142. package/lib-es/room-router/index.js +3 -2
  143. package/lib-es/schema.js +33 -19
  144. package/lib-es/service/api.js +203 -4
  145. package/lib-es/service/type.js +9 -1
  146. package/lib-es/struct.js +69 -0
  147. package/lib-es/type.js +3 -54
  148. package/lib-es/utilities/error-helpers.js +2 -0
  149. package/lib-es/utilities/error.js +5 -5
  150. package/lib-es/utilities/join-helper.js +5 -4
  151. package/lib-es/utilities/parameters.js +3 -0
  152. package/lib-es/utilities/scene-properties.js +2 -0
  153. package/lib-es/utilities/shared-storage.js +14 -0
  154. package/lib-es/utilities/video-encoder-config.js +19 -9
  155. package/package.json +4 -4
@@ -1,9 +1,9 @@
1
1
  import { FcrCoreEngineConfig } from '..';
2
2
  import { FcrDesktopMediaControl, FcrMobileMediaControl } from '../media-control/type';
3
3
  import { FcrMonitorControl } from '../monitor-control/type';
4
- import { FcrMainRoomControl, FcrRoomJoinOptions, FcrWaitingRoomControl } from '../room-control/type';
4
+ import { FcrInfinityRoomControl, FcrMainRoomControl, FcrRoomJoinOptions, FcrWaitingRoomControl } from '../room-control/type';
5
5
  import { FcrRoomRouter } from '../room-router/type';
6
- import { FcrCoreEngine, FcrCoreEngineObserver, FcrPeerSessionControl } from '../type';
6
+ import { FcrCoreEngine, FcrCoreEngineObserver, FcrPeerSessionControl, FcrRemoteControl } from '../type';
7
7
  import { Unknown } from '../imports';
8
8
  export declare class FcrCoreEngineImpl implements FcrCoreEngine {
9
9
  constructor(config: FcrCoreEngineConfig);
@@ -30,12 +30,13 @@ export declare class FcrCoreEngineImpl implements FcrCoreEngine {
30
30
  */
31
31
  getVersion(): string;
32
32
  getDependencyVersions(): Record<string, string>;
33
+ createMainRoomControl(roomId: string): FcrMainRoomControl;
33
34
  /**
34
35
  * Creates a room control.
35
36
  * @param roomId
36
37
  * @returns The room control.
37
38
  */
38
- createMainRoomControl(roomId: string): FcrMainRoomControl;
39
+ createInfinityRoomControl(roomId: string): FcrInfinityRoomControl;
39
40
  /**
40
41
  * Creates a waiting room control.
41
42
  * @param roomId
@@ -53,7 +54,7 @@ export declare class FcrCoreEngineImpl implements FcrCoreEngine {
53
54
  * @param roomId
54
55
  * @returns The room control.
55
56
  */
56
- createRoomControlAndJoin(roomId: string, options: FcrRoomJoinOptions): Promise<FcrMainRoomControl | FcrWaitingRoomControl>;
57
+ createRoomControlAndJoin(roomId: string, options: FcrRoomJoinOptions): Promise<FcrMainRoomControl | FcrWaitingRoomControl | FcrInfinityRoomControl>;
57
58
  /**
58
59
  * Gets the media control.
59
60
  * @returns The media control.
@@ -74,6 +75,11 @@ export declare class FcrCoreEngineImpl implements FcrCoreEngine {
74
75
  * @returns The peer session control.
75
76
  */
76
77
  getPeerSessionControl(): FcrPeerSessionControl;
78
+ /**
79
+ * Gets the remote control.
80
+ * @returns The remote control.
81
+ */
82
+ getRemoteControl(): FcrRemoteControl;
77
83
  /**
78
84
  * Sends a peer message.
79
85
  * @param payload
@@ -58,7 +58,9 @@ var _logger = require("../utilities/logger");
58
58
  var _packageInfo = require("../utilities/package-info");
59
59
  var _parameters = require("../utilities/parameters");
60
60
  var _validateParams = _interopRequireDefault(require("../utilities/validate-params"));
61
- let _initProto, _renewUserTokenDecs, _createMainRoomControlDecs, _createWaitingRoomControlDecs, _createRoomRouterDecs, _createRoomControlAndJoinDecs, _sendPeerMessageDecs, _setParametersDecs;
61
+ var _infinityRoomControl = require("../room-control/infinity-room-control");
62
+ var _remoteControl = require("../remote-control");
63
+ let _initProto, _renewUserTokenDecs, _createMainRoomControlDecs, _createInfinityRoomControlDecs, _createWaitingRoomControlDecs, _createRoomRouterDecs, _createRoomControlAndJoinDecs, _sendPeerMessageDecs, _setParametersDecs;
62
64
  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)]; } }; }
63
65
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
64
66
  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); }
@@ -66,10 +68,10 @@ function _setFunctionName(e, t, n) { "symbol" == typeof t && (t = (t = t.descrip
66
68
  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; }
67
69
  class FcrCoreEngineImpl {
68
70
  static {
69
- [_initProto] = _applyDecs(this, [[_decorator.trace, 2, "release"], [_decorator.trace, 2, "login"], [_decorator.trace, 2, "logout"], [_renewUserTokenDecs, 2, "renewUserToken"], [_decorator.trace, 2, "getVersion"], [_createMainRoomControlDecs, 2, "createMainRoomControl"], [_createWaitingRoomControlDecs, 2, "createWaitingRoomControl"], [_createRoomRouterDecs, 2, "createRoomRouter"], [_createRoomControlAndJoinDecs, 2, "createRoomControlAndJoin"], [_decorator.trace, 2, "getDesktopMediaControl"], [_decorator.trace, 2, "getMobileMediaControl"], [_decorator.trace, 2, "getMonitorControl"], [_decorator.trace, 2, "getPeerSessionControl"], [_sendPeerMessageDecs, 2, "sendPeerMessage"], [_setParametersDecs, 2, "setParameters"]], []).e;
71
+ [_initProto] = _applyDecs(this, [[_decorator.trace, 2, "release"], [_decorator.trace, 2, "login"], [_decorator.trace, 2, "logout"], [_renewUserTokenDecs, 2, "renewUserToken"], [_decorator.trace, 2, "getVersion"], [_createMainRoomControlDecs, 2, "createMainRoomControl"], [_createInfinityRoomControlDecs, 2, "createInfinityRoomControl"], [_createWaitingRoomControlDecs, 2, "createWaitingRoomControl"], [_createRoomRouterDecs, 2, "createRoomRouter"], [_createRoomControlAndJoinDecs, 2, "createRoomControlAndJoin"], [_decorator.trace, 2, "getDesktopMediaControl"], [_decorator.trace, 2, "getMobileMediaControl"], [_decorator.trace, 2, "getMonitorControl"], [_decorator.trace, 2, "getPeerSessionControl"], [_decorator.trace, 2, "getRemoteControl"], [_sendPeerMessageDecs, 2, "sendPeerMessage"], [_setParametersDecs, 2, "setParameters"]], []).e;
70
72
  }
71
73
  // @internal
72
- [(_renewUserTokenDecs = (0, _decorator.trace)(['token'], true), _createMainRoomControlDecs = [(0, _decorator.trace)(['roomId']), (0, _validateParams.default)(_schema.stringSchema)], _createWaitingRoomControlDecs = [(0, _decorator.trace)(['roomId']), (0, _validateParams.default)(_schema.stringSchema)], _createRoomRouterDecs = [(0, _decorator.trace)(['roomId']), (0, _validateParams.default)(_schema.stringSchema)], _createRoomControlAndJoinDecs = [(0, _decorator.trace)(['roomId', 'options']), (0, _validateParams.default)(_schema.stringSchema, _schema.fcrRoomJoinOptionsSchema)], _sendPeerMessageDecs = [(0, _decorator.trace)(['payload', 'guaranteedDelivery', 'receiverId'], true), (0, _validateParams.default)(_schema.stringKeyUnknownValueSchema, _schema.booleanSchema, _schema.stringSchema)], _setParametersDecs = [(0, _decorator.trace)(['parameters'], true), (0, _validateParams.default)(_schema.stringKeyUnknownValueSchema)], "logger")] = void _initProto(this);
74
+ [(_renewUserTokenDecs = (0, _decorator.trace)(['token'], true), _createMainRoomControlDecs = [(0, _decorator.trace)(['roomId']), (0, _validateParams.default)(_schema.stringSchema)], _createInfinityRoomControlDecs = [(0, _decorator.trace)(['roomId']), (0, _validateParams.default)(_schema.stringSchema)], _createWaitingRoomControlDecs = [(0, _decorator.trace)(['roomId']), (0, _validateParams.default)(_schema.stringSchema)], _createRoomRouterDecs = [(0, _decorator.trace)(['roomId']), (0, _validateParams.default)(_schema.stringSchema)], _createRoomControlAndJoinDecs = [(0, _decorator.trace)(['roomId', 'options']), (0, _validateParams.default)(_schema.stringSchema, _schema.fcrRoomJoinOptionsSchema)], _sendPeerMessageDecs = [(0, _decorator.trace)(['payload', 'guaranteedDelivery', 'receiverId'], true), (0, _validateParams.default)(_schema.stringKeyUnknownValueSchema, _schema.booleanSchema, _schema.stringSchema)], _setParametersDecs = [(0, _decorator.trace)(['parameters'], true), (0, _validateParams.default)(_schema.stringKeyUnknownValueSchema)], "logger")] = void _initProto(this);
73
75
  // @internal
74
76
 
75
77
  // @internal
@@ -96,7 +98,15 @@ class FcrCoreEngineImpl {
96
98
  _lock = new _mutex.Mutex();
97
99
  // @internal
98
100
  _observable = new _observable.AgoraObservable();
101
+ // @internal
102
+
99
103
  constructor(config) {
104
+ // 确保config是一个正确的FcrCoreEngineConfig实例,以
105
+ // 便即使调用者传递的是一个普通对象,也能始终应用_prependInternalParameters(rtc/rtm预设参数)。
106
+
107
+ if (!(config instanceof _.FcrCoreEngineConfig)) {
108
+ config = new _.FcrCoreEngineConfig(config);
109
+ }
100
110
  this._config = config;
101
111
  (0, _domainHolder.resetSharedDomainHolder)();
102
112
  const rteLogFileSize = (0, _parameters.getCoreLogFileSize)(config.parameters);
@@ -128,6 +138,7 @@ class FcrCoreEngineImpl {
128
138
 
129
139
  // cannot be lazy loaded, because all the observers should be added before the engine is started
130
140
  this._peerSessionControl = new _peerSession.FcrPeerSessionControlImpl(this._rteEngine, this._apiService, this._config.userId);
141
+ this._remoteControl = new _remoteControl.FcrRemoteControlImpl(this._rteEngine, this._apiService, this._config.userId);
131
142
  this._chatConnection = this._createChatConnection(config.parameters);
132
143
  this._monitorControl = new _monitorControl.FcrMonitorControlImpl(this._rteEngine, this._config);
133
144
  this._desktopMediaControl = new _desktop.FcrDesktopMediaControlImpl(this._rteEngine.getMediaControl());
@@ -204,17 +215,25 @@ class FcrCoreEngineImpl {
204
215
  easemob: (0, _packageInfo.getDependenciesInfo)('easemob-websdk')
205
216
  };
206
217
  }
218
+ createMainRoomControl(roomId) {
219
+ const sceneConfig = {
220
+ sceneId: roomId
221
+ };
222
+ const scene = this._rteEngine.createScene(sceneConfig);
223
+ return new _mainroomControl.FcrMainRoomControlImpl(this._rteEngine, scene, this._apiService, this._config, this._sharedCache, this._chatConnection, new _chatroom.FcrChatRoomControlImpl(scene, this._chatConnection, this._sharedCache, false), this._monitorControl);
224
+ }
207
225
 
208
226
  /**
209
227
  * Creates a room control.
210
228
  * @param roomId
211
229
  * @returns The room control.
212
230
  */
213
- createMainRoomControl(roomId) {
214
- const scene = this._rteEngine.createScene({
231
+ createInfinityRoomControl(roomId) {
232
+ const sceneConfig = {
215
233
  sceneId: roomId
216
- });
217
- return new _mainroomControl.FcrMainRoomControlImpl(this._rteEngine, scene, this._apiService, this._config, this._sharedCache, this._chatConnection, new _chatroom.FcrChatRoomControlImpl(scene, this._chatConnection, this._sharedCache, false), this._monitorControl);
234
+ };
235
+ const scene = this._rteEngine.createScene(sceneConfig);
236
+ return new _infinityRoomControl.FcrInfinityRoomControlImpl(this._rteEngine, scene, this._apiService, this._config, this._sharedCache, this._chatConnection, new _chatroom.FcrChatRoomControlImpl(scene, this._chatConnection, this._sharedCache, false), this._monitorControl);
218
237
  }
219
238
 
220
239
  /**
@@ -223,9 +242,10 @@ class FcrCoreEngineImpl {
223
242
  * @returns The room control.
224
243
  */
225
244
  createWaitingRoomControl(roomId) {
226
- const scene = this._rteEngine.createScene({
245
+ const sceneConfig = {
227
246
  sceneId: roomId
228
- });
247
+ };
248
+ const scene = this._rteEngine.createScene(sceneConfig);
229
249
  return new _waitingroomControl.FcrWaitingRoomControlImpl(this._rteEngine, scene, this._apiService, this._config, this._sharedCache, this._chatConnection, new _chatroom.FcrChatRoomControlImpl(scene, this._chatConnection, this._sharedCache, false));
230
250
  }
231
251
 
@@ -275,10 +295,18 @@ class FcrCoreEngineImpl {
275
295
  data,
276
296
  ts
277
297
  } = res;
278
- if (data.room.roomProperties.roomType === _type3.FcrRoomType.Waitingroom) {
279
- roomControl = this.createWaitingRoomControl(data.room.roomInfo.roomUuid);
280
- } else {
281
- roomControl = this.createMainRoomControl(roomId);
298
+ switch (data.room.roomProperties.roomType) {
299
+ case _type3.FcrRoomType.Waitingroom:
300
+ roomControl = this.createWaitingRoomControl(data.room.roomInfo.roomUuid);
301
+ break;
302
+ case _type3.FcrRoomType.Infinityroom:
303
+ roomControl = this.createInfinityRoomControl(roomId);
304
+ break;
305
+ case _type3.FcrRoomType.Mainroom:
306
+ roomControl = this.createMainRoomControl(roomId);
307
+ break;
308
+ default:
309
+ throw new Error(`Unknown room type: ${data.room.roomProperties.roomType}`);
282
310
  }
283
311
  await roomControl.join({
284
312
  ...options,
@@ -339,6 +367,14 @@ class FcrCoreEngineImpl {
339
367
  return this._peerSessionControl;
340
368
  }
341
369
 
370
+ /**
371
+ * Gets the remote control.
372
+ * @returns The remote control.
373
+ */
374
+ getRemoteControl() {
375
+ return this._remoteControl;
376
+ }
377
+
342
378
  /**
343
379
  * Sends a peer message.
344
380
  * @param payload
@@ -1,6 +1,6 @@
1
1
  import { FcrDesktopMediaControl, FcrMobileMediaControl, FcrMonitorControl } from '..';
2
- import { FcrMainRoomControl, FcrWaitingRoomControl, FcrRoomJoinOptions } from '../room-control/type';
3
- import { FcrRoomRouter, FcrPeerSessionControl, FcrCoreEngineObserver } from '../type';
2
+ import { FcrMainRoomControl, FcrWaitingRoomControl, FcrRoomJoinOptions, FcrInfinityRoomControl } from '../room-control/type';
3
+ import { FcrRoomRouter, FcrPeerSessionControl, FcrCoreEngineObserver, FcrRemoteControl } from '../type';
4
4
  import { Unknown } from '../imports';
5
5
  export interface FcrCoreEngine {
6
6
  release(): void;
@@ -39,6 +39,11 @@ export interface FcrCoreEngine {
39
39
  * @returns The room control.
40
40
  */
41
41
  createWaitingRoomControl(roomId: string): FcrWaitingRoomControl;
42
+ /**
43
+ * Creates an infinity room control.
44
+ * @param roomId
45
+ */
46
+ createInfinityRoomControl(roomId: string): FcrInfinityRoomControl;
42
47
  /**
43
48
  * Creates room router.
44
49
  * @param roomId
@@ -50,7 +55,7 @@ export interface FcrCoreEngine {
50
55
  * @param roomId
51
56
  * @returns The room control.
52
57
  */
53
- createRoomControlAndJoin(roomId: string, options: FcrRoomJoinOptions): Promise<FcrMainRoomControl | FcrWaitingRoomControl>;
58
+ createRoomControlAndJoin(roomId: string, options: FcrRoomJoinOptions): Promise<FcrMainRoomControl | FcrWaitingRoomControl | FcrInfinityRoomControl>;
54
59
  /**
55
60
  * Gets the media control.
56
61
  * @returns The media control.
@@ -71,6 +76,11 @@ export interface FcrCoreEngine {
71
76
  * @returns The peer session control.
72
77
  */
73
78
  getPeerSessionControl(): FcrPeerSessionControl;
79
+ /**
80
+ * Gets the remote control.
81
+ * @returns The remote control.
82
+ */
83
+ getRemoteControl(): FcrRemoteControl;
74
84
  /**
75
85
  * Sends a peer message.
76
86
  * @param payload
package/lib/imports.d.ts CHANGED
@@ -5,7 +5,6 @@ import padStart from 'lodash/padStart';
5
5
  import padEnd from 'lodash/padEnd';
6
6
  import toLower from 'lodash/toLower';
7
7
  import { default as EasemobChatSDK } from 'easemob-websdk';
8
- import { FcrVideoEncoderConfigurationSchema, FcrMediaStreamCreateConfigSchema, FcrStreamBindConfigSchema } from './schema';
9
8
  export { to, get, padStart, padEnd, toLower, EasemobChatSDK };
10
9
  export { EasemobChat } from 'easemob-websdk';
11
10
  export { RTMProvider_2_2 as FcrRTMProvider_2_2 } from '@netless/forge-rtm';
@@ -32,14 +31,11 @@ export type { AgoraRtcNetworkStats, AgoraRtcDeviceInfo, AgoraRtcDisplayInfo, Ago
32
31
  export type { AgoraRtmClient } from 'agora-rte-sdk/lib/core/rtm/client';
33
32
  export type { AgoraRteEngineObserver } from 'agora-rte-sdk/lib/core/engine/type';
34
33
  export type { AgoraRteNetworkQualityEvent } from 'agora-rte-sdk/lib/core/scene/type';
35
- export type { AgoraRteOperatCause } from 'agora-rte-sdk/lib/core/processor/type';
34
+ export type { AgoraRteOperatCause, AgoraRteExDataSyncTypeInfo, } from 'agora-rte-sdk/lib/core/processor/type';
36
35
  export type { AgoraRestfulClient } from 'agora-rte-sdk/lib/core/services/client';
37
36
  export { AgoraRteError } from 'agora-rte-sdk/lib/core/utilities/error';
38
37
  export { AgoraError as FcrError } from 'agora-foundation/lib/utilities/error/agora-error';
39
- export type { AgoraRteUserUpdatedReason as FcrUserUpdatedReason, AgoraRteUserPageParams, AgoraRteUserPageResponse, AgoraRteUserPropertiesDeletedEvent, AgoraRteUserPropertiesUpdatedEvent, AgoraRteUserInfo, AgoraRteSceneObserver, AgoraRteSnapshotInfo, AgoraRteEntryRoomResponse, AgoraRteMediaStreamEvent, } from 'agora-rte-sdk/lib/core/scene/type';
40
- export type AgoraRteMediaStreamCreateConfig = FcrMediaStreamCreateConfigSchema;
41
- export type AgoraRteStreamBindConfig = FcrStreamBindConfigSchema;
42
- export type AgoraRteVideoEncoderConfig = FcrVideoEncoderConfigurationSchema;
38
+ export type { AgoraRteUserUpdatedReason as FcrUserUpdatedReason, AgoraRteUserPageParams, AgoraRteUserPageResponse, AgoraRteUserPropertiesDeletedEvent, AgoraRteUserPropertiesUpdatedEvent, AgoraRteUserInfo, AgoraRteSceneObserver, AgoraRteSnapshotInfo, AgoraRteEntryRoomResponse, AgoraRteMediaStreamEvent, AgoraRteUserDesyncedEvent, AgoraRteUserSyncedEvent, } from 'agora-rte-sdk/lib/core/scene/type';
43
39
  export type { AgoraRtcLocalVideoStats, AgoraRtcLocalAudioStats, AgoraRtcRemoteVideoStats, AgoraRtcRemoteAudioStats, AgoraRtcDimensions, } from 'agora-rte-sdk/lib/core/rtc/type';
44
40
  export type { AgoraRteAudioRawDataConfig, AgoraRteBeautyOptions, AgoraRteCameraPosition, AgoraRteScreenCaptureParams, AgoraRteVirtualBackgroundOptions, AgoraRteCameraCaptureParams, } from 'agora-rte-sdk/lib/core/media/type';
45
41
  export type { AgoraRteMonitor } from 'agora-rte-sdk/lib/core/monitor';
@@ -47,7 +43,7 @@ export type { AgoraRteMediaControl } from 'agora-rte-sdk/lib/core/media/type';
47
43
  export type { AgoraRteUpdateStreamPrivilege, AgoraRteMediaStreamInfo, } from 'agora-rte-sdk/lib/core/scene/type';
48
44
  export { AgoraRteConnectionState, AgoraRteEngine, convertStreamTypeToPublishState, AgoraRteLatencyLevel, } from 'agora-rte-sdk';
49
45
  export { AgoraRteRoomConnectorType, AgoraRteStreamPrivilegeOperation, AgoraRteStreamPrivilegeVideoSourceType, AgoraRteStreamPrivilegeAudioSourceType, AgoraRteMediaStreamType, } from 'agora-rte-sdk/lib/core/scene/type';
50
- export { AgoraRtcRegion, AgoraRtcVideoSourceType, AgoraRtcAudioSourceType, AgoraRtcMediaSourceState, AgoraRtcRenderMode, AgoraRtcVideoStreamType, AgoraRtcCapability, AgoraRtcAiDenoiseLevel, AgoraRtcAudioOutputRouting, AgoraRtcLatencyLevelType, AgoraRtcEncryptionMode, } from 'agora-rte-sdk/lib/core/rtc/type';
46
+ export { AgoraRtcRegion, AgoraRtcVideoSourceType, AgoraRtcAudioSourceType, AgoraRtcMediaSourceState, AgoraRtcRenderMode, AgoraRtcVideoStreamType, AgoraRtcCapability, AgoraRtcAiDenoiseLevel, AgoraRtcAudioOutputRouting, AgoraRtcLatencyLevelType, AgoraRtcEncryptionMode, AgoraRtcDegradationPreference, } from 'agora-rte-sdk/lib/core/rtc/type';
51
47
  export { AgoraRteStreamLayer } from 'agora-rte-sdk/lib/type';
52
48
  export { AgoraRtmRegion } from 'agora-rte-sdk/lib/core/rtm/type';
53
49
  export { AgoraRteRegion, AgoraRteAudioSourceType, AgoraRteVideoSourceType, AgoraRteMediaPublishState, AgoraRteScreenScenarioType as FcrScreenScenarioType, AgoraRteMediaSourceState, } from 'agora-rte-sdk/lib/type';
@@ -72,3 +68,4 @@ export { FcrChatRoomControlImpl } from './plugins/chat/chatroom';
72
68
  export type Unknown = unknown;
73
69
  export { default as isBoolean } from 'lodash/isBoolean';
74
70
  export { default as isNumber } from 'lodash/isNumber';
71
+ export { AgoraRteExDataSyncType } from 'agora-rte-sdk/lib/core/processor/type';
package/lib/imports.js CHANGED
@@ -48,6 +48,12 @@ Object.defineProperty(exports, "AgoraRtcCapability", {
48
48
  return _type2.AgoraRtcCapability;
49
49
  }
50
50
  });
51
+ Object.defineProperty(exports, "AgoraRtcDegradationPreference", {
52
+ enumerable: true,
53
+ get: function () {
54
+ return _type2.AgoraRtcDegradationPreference;
55
+ }
56
+ });
51
57
  Object.defineProperty(exports, "AgoraRtcEncryptionMode", {
52
58
  enumerable: true,
53
59
  get: function () {
@@ -114,6 +120,12 @@ Object.defineProperty(exports, "AgoraRteError", {
114
120
  return _error.AgoraRteError;
115
121
  }
116
122
  });
123
+ Object.defineProperty(exports, "AgoraRteExDataSyncType", {
124
+ enumerable: true,
125
+ get: function () {
126
+ return _type6.AgoraRteExDataSyncType;
127
+ }
128
+ });
117
129
  Object.defineProperty(exports, "AgoraRteLatencyLevel", {
118
130
  enumerable: true,
119
131
  get: function () {
@@ -591,6 +603,7 @@ var _errorCode = require("agora-foundation/lib/utilities/error/error-code");
591
603
  var _chatroom = require("./plugins/chat/chatroom");
592
604
  var _isBoolean = _interopRequireDefault(require("lodash/isBoolean"));
593
605
  var _isNumber = _interopRequireDefault(require("lodash/isNumber"));
606
+ var _type6 = require("agora-rte-sdk/lib/core/processor/type");
594
607
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
595
608
  // Other utility exports
596
609
 
package/lib/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export type { FcrDesktopMediaControl, FcrDesktopMediaObserver, FcrMobileMediaControl, FcrMobileMediaObserver, FcrMonitorControl, FcrMonitorObserver, FcrBaseRoomControl, FcrRoomObserver, FcrUserControl, FcrUserObserver, FcrStreamControl, FcrStreamObserver, FcrPrivilegeControl, FcrPermission, FcrBoardMainWindow, FcrBoardMainWindowObserver, FcrColor, } from './type';
2
- export { FcrStreamLatencyLevel, FcrPermissionAction, FcrPrivilegeUserRole, FcrUserRole, FcrStreamState, FcrRegion, FcrStreamType, FcrUserUpdatedReason, FcrRoomConnectorType, FcrVideoSourceType, FcrAudioSourceType, FcrMediaSourceState, FcrVideoRenderMode, FcrVideoStreamType, FcrCapability, FcrAiDenoiseLevel, FcrStreamPrivilegeOperation, FcrStreamPrivilegeVideoSourceType, FcrStreamPrivilegeAudioSourceType, FcrConnectionState, registerPlugin, FcrBoardToolType, FcrBoardShape, FcrCoreEngineConfig, FcrVideoEncoderConfig, FcrDualVideoStreamConfig, } from './type';
2
+ export { FcrStreamLatencyLevel, FcrPermissionAction, FcrPrivilegeUserRole, FcrUserRole, FcrStreamState, FcrRegion, FcrStreamType, FcrUserUpdatedReason, FcrRoomConnectorType, FcrVideoSourceType, FcrAudioSourceType, FcrMediaSourceState, FcrVideoRenderMode, FcrVideoStreamType, FcrCapability, FcrAiDenoiseLevel, FcrStreamPrivilegeOperation, FcrStreamPrivilegeVideoSourceType, FcrStreamPrivilegeAudioSourceType, FcrConnectionState, registerPlugin, FcrBoardToolType, FcrBoardShape, FcrVideoEncoderConfig, FcrDualVideoStreamConfig, } from './type';
3
3
  export { FcrCoreEngineImpl as FcrCoreEngine } from './engine';
4
+ export { FcrCoreEngineConfig } from './struct';
4
5
  export { FcrError } from './type';
package/lib/index.js CHANGED
@@ -48,7 +48,7 @@ Object.defineProperty(exports, "FcrCoreEngine", {
48
48
  Object.defineProperty(exports, "FcrCoreEngineConfig", {
49
49
  enumerable: true,
50
50
  get: function () {
51
- return _type.FcrCoreEngineConfig;
51
+ return _struct.FcrCoreEngineConfig;
52
52
  }
53
53
  });
54
54
  Object.defineProperty(exports, "FcrDualVideoStreamConfig", {
@@ -172,4 +172,5 @@ Object.defineProperty(exports, "registerPlugin", {
172
172
  }
173
173
  });
174
174
  var _type = require("./type");
175
- var _engine = require("./engine");
175
+ var _engine = require("./engine");
176
+ var _struct = require("./struct");
@@ -25,6 +25,7 @@ exports.FcrDesktopMediaControlImpl = void 0;
25
25
  require("core-js/modules/esnext.iterator.constructor.js");
26
26
  require("core-js/modules/esnext.iterator.for-each.js");
27
27
  var _imports = require("../imports");
28
+ var _type = require("../type");
28
29
  var _schema = require("../schema");
29
30
  var _validateParams = _interopRequireDefault(require("../utilities/validate-params"));
30
31
  var _logger = require("../utilities/logger");
@@ -39,7 +40,7 @@ function _checkInRHS(e) { if (Object(e) !== e) throw TypeError("right-hand side
39
40
  */
40
41
  class FcrDesktopMediaControlImpl {
41
42
  static {
42
- [_initProto] = _applyDecs(this, [[_imports.trace, 2, "getLoopbackList"], [_imports.trace, 2, "getCameraList"], [_imports.trace, 2, "getMicrophoneList"], [_imports.trace, 2, "getSpeakerList"], [_imports.trace, 2, "getSystemSelectedMicrophone"], [_imports.trace, 2, "getSystemSelectedSpeaker"], [_imports.trace, 2, "getWindowList"], [_imports.trace, 2, "getDisplayList"], [_getCameraTrackDecs, 2, "getCameraTrack"], [_getMicrophoneTrackDecs, 2, "getMicrophoneTrack"], [_getScreenTrackDecs, 2, "getScreenTrack"], [_getLoopbackTrackDecs, 2, "getLoopbackTrack"], [_setSelectedSpeakerDecs, 2, "setSelectedSpeaker"], [_startSelectedSpeakerTestDecs, 2, "startSelectedSpeakerTest"], [_stopSelectedSpeakerTestDecs, 2, "stopSelectedSpeakerTest"], [_isCapabilitySupportedDecs, 2, "isCapabilitySupported"], [_adjustOutputVolumeDecs, 2, "adjustOutputVolume"], [_setSelectedSpeakerVolumeDecs, 2, "setSelectedSpeakerVolume"], [_imports.trace, 2, "getSelectedSpeakerVolume"], [_observeSystemSelectedSpeakerChangedDecs, 2, "observeSystemSelectedSpeakerChanged"], [_observeSystemSelectedMicrophoneChangedDecs, 2, "observeSystemSelectedMicrophoneChanged"], [_disableAGCDecs, 2, "disableAGC"], [_enableAGCDecs, 2, "enableAGC"]], []).e;
43
+ [_initProto] = _applyDecs(this, [[_imports.trace, 2, "getLoopbackList"], [_imports.trace, 2, "getCameraList"], [_imports.trace, 2, "getMicrophoneList"], [_imports.trace, 2, "getSpeakerList"], [_imports.trace, 2, "getSystemSelectedMicrophone"], [_imports.trace, 2, "getSystemSelectedSpeaker"], [_imports.trace, 2, "getWindowList"], [_imports.trace, 2, "getDisplayList"], [_getCameraTrackDecs, 2, "getCameraTrack"], [_getMicrophoneTrackDecs, 2, "getMicrophoneTrack"], [_getScreenTrackDecs, 2, "getScreenTrack"], [_getLoopbackTrackDecs, 2, "getLoopbackTrack"], [_setSelectedSpeakerDecs, 2, "setSelectedSpeaker"], [_startSelectedSpeakerTestDecs, 2, "startSelectedSpeakerTest"], [_stopSelectedSpeakerTestDecs, 2, "stopSelectedSpeakerTest"], [_isCapabilitySupportedDecs, 2, "isCapabilitySupported"], [_adjustOutputVolumeDecs, 2, "adjustOutputVolume"], [_setSelectedSpeakerVolumeDecs, 2, "setSelectedSpeakerVolume"], [_imports.trace, 2, "getSelectedSpeakerVolume"], [_imports.trace, 2, "getOutputVolume"], [_imports.trace, 2, "release"], [_observeSystemSelectedSpeakerChangedDecs, 2, "observeSystemSelectedSpeakerChanged"], [_observeSystemSelectedMicrophoneChangedDecs, 2, "observeSystemSelectedMicrophoneChanged"], [_disableAGCDecs, 2, "disableAGC"], [_enableAGCDecs, 2, "enableAGC"]], []).e;
43
44
  }
44
45
  [(_getCameraTrackDecs = [(0, _imports.trace)(['deviceId']), (0, _validateParams.default)(_schema.stringSchema)], _getMicrophoneTrackDecs = [(0, _imports.trace)(['deviceId']), (0, _validateParams.default)(_schema.stringSchema)], _getScreenTrackDecs = [(0, _imports.trace)(['sourceId']), (0, _validateParams.default)(_schema.stringSchema)], _getLoopbackTrackDecs = [(0, _imports.trace)(['sourceId']), (0, _validateParams.default)(_schema.stringSchema)], _setSelectedSpeakerDecs = [(0, _imports.trace)(['deviceId'], true), (0, _validateParams.default)(_schema.stringSchema)], _startSelectedSpeakerTestDecs = [(0, _imports.trace)(['url'], true), (0, _validateParams.default)(_schema.stringSchema)], _stopSelectedSpeakerTestDecs = (0, _imports.trace)(true), _isCapabilitySupportedDecs = [(0, _imports.trace)(['capability']), (0, _validateParams.default)(_schema.fcrCapabilitySchema)], _adjustOutputVolumeDecs = [(0, _imports.trace)(['volume'], true), (0, _validateParams.default)(_schema.numberSchema)], _setSelectedSpeakerVolumeDecs = [(0, _imports.trace)(['volume'], true), (0, _validateParams.default)(_schema.numberSchema)], _observeSystemSelectedSpeakerChangedDecs = (0, _imports.trace)(true), _observeSystemSelectedMicrophoneChangedDecs = (0, _imports.trace)(true), _disableAGCDecs = (0, _imports.trace)(true), _enableAGCDecs = (0, _imports.trace)(true), "logger")] = (_initProto(this), (0, _logger.createLogger)({
45
46
  prefix: 'FcrDesktopMediaControlImpl'
@@ -158,12 +159,20 @@ class FcrDesktopMediaControlImpl {
158
159
  getSelectedSpeakerVolume() {
159
160
  return this._mediaControl.getSelectedSpeakerVolume();
160
161
  }
162
+ getOutputVolume() {
163
+ return this._mediaControl.getOutputVolume();
164
+ }
161
165
  addObserver(observer) {
162
166
  this._observable.addObserver(observer);
163
167
  }
164
168
  removeObserver(observer) {
165
169
  this._observable.removeObserver(observer);
166
170
  }
171
+ release() {
172
+ this._mediaControl.release();
173
+ this._observable.removeAllObservers();
174
+ return _type.FcrReturnCode.SUCCESS;
175
+ }
167
176
  observeSystemSelectedSpeakerChanged(follow) {
168
177
  return this._mediaControl.observeSystemSelectedSpeakerChanged(follow);
169
178
  }
@@ -33,19 +33,22 @@ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol"
33
33
  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); }
34
34
  function _setFunctionName(e, t, n) { "symbol" == typeof t && (t = (t = t.description) ? "[" + t + "]" : ""); try { Object.defineProperty(e, "name", { configurable: !0, value: n ? n + " " + t : t }); } catch (e) {} return e; }
35
35
  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; }
36
+ const DEFAULT_MOBILE_CAMERA_SOURCE_ID = 'default-mobile-camera-source-id';
37
+ const DEFAULT_MOBILE_MIC_SOURCE_ID = 'default-mobile-mic-source-id';
38
+
36
39
  /**
37
40
  * @internal
38
41
  */
39
42
  class FcrMobileMediaControlImpl {
40
43
  static {
41
- [_initProto] = _applyDecs(this, [[_getDeviceIdDecs, 2, "getDeviceId"], [_getDeviceStateDecs, 2, "getDeviceState"], [_imports.trace, 2, "startCameraTest"], [_imports.trace, 2, "stopCameraTest"], [_startCameraPreviewDecs, 2, "startCameraPreview"], [_stopCameraPreviewDecs, 2, "stopCameraPreview"], [_imports.trace, 2, "stopCameraPreviewOnAllCanvas"], [_imports.trace, 2, "startScreenCapture"], [_imports.trace, 2, "getScreenCaptureState"], [_imports.trace, 2, "startLoopbackRecording"], [_imports.trace, 2, "stopLoopbackRecording"], [_imports.trace, 2, "getLoopbackRecordingState"], [_imports.trace, 2, "getAudioOutputRouting"], [_imports.trace, 2, "getAudioEffectEnhancer"], [_imports.trace, 2, "getVideoEffectEnhancer"], [_openDeviceDecs, 2, "openDevice"], [_closeDeviceDecs, 2, "closeDevice"], [_imports.trace, 2, "switchCamera"], [_imports.trace, 2, "getCameraPosition"], [_getCameraTrackDecs, 2, "getCameraTrack"], [_getMicrophoneTrackDecs, 2, "getMicrophoneTrack"], [_isCapabilitySupportedDecs, 2, "isCapabilitySupported"], [_adjustOutputVolumeDecs, 2, "adjustOutputVolume"]], []).e;
44
+ [_initProto] = _applyDecs(this, [[_getDeviceIdDecs, 2, "getDeviceId"], [_getDeviceStateDecs, 2, "getDeviceState"], [_imports.trace, 2, "startCameraTest"], [_imports.trace, 2, "stopCameraTest"], [_imports.trace, 2, "setCaptureParams"], [_startCameraPreviewDecs, 2, "startCameraPreview"], [_stopCameraPreviewDecs, 2, "stopCameraPreview"], [_imports.trace, 2, "stopCameraPreviewOnAllCanvas"], [_imports.trace, 2, "startScreenCapture"], [_imports.trace, 2, "getScreenCaptureState"], [_imports.trace, 2, "startLoopbackRecording"], [_imports.trace, 2, "stopLoopbackRecording"], [_imports.trace, 2, "getLoopbackRecordingState"], [_imports.trace, 2, "getAudioOutputRouting"], [_imports.trace, 2, "getAudioEffectEnhancer"], [_imports.trace, 2, "getVideoEffectEnhancer"], [_openDeviceDecs, 2, "openDevice"], [_closeDeviceDecs, 2, "closeDevice"], [_imports.trace, 2, "switchCamera"], [_imports.trace, 2, "getCameraPosition"], [_getCameraTrackDecs, 2, "getCameraTrack"], [_getMicrophoneTrackDecs, 2, "getMicrophoneTrack"], [_isCapabilitySupportedDecs, 2, "isCapabilitySupported"], [_adjustOutputVolumeDecs, 2, "adjustOutputVolume"], [_imports.trace, 2, "release"]], []).e;
42
45
  }
43
46
  [(_getDeviceIdDecs = [_imports.trace, (0, _validateParams.default)(_schema.fcrDeviceTypeSchema)], _getDeviceStateDecs = [_imports.trace, (0, _validateParams.default)(_schema.fcrDeviceTypeSchema)], _startCameraPreviewDecs = [_imports.trace, (0, _validateParams.default)(_schema.stringOrObjectSchema, _schema.fcrRenderConfigSchema)], _stopCameraPreviewDecs = [_imports.trace, (0, _validateParams.default)(_schema.stringOrObjectSchema)], _openDeviceDecs = [_imports.trace, (0, _validateParams.default)(_schema.fcrDeviceTypeSchema)], _closeDeviceDecs = [_imports.trace, (0, _validateParams.default)(_schema.fcrDeviceTypeSchema)], _getCameraTrackDecs = (0, _validateParams.default)(_schema.fcrMobileDeviceIdOrNameSchema), _getMicrophoneTrackDecs = (0, _validateParams.default)(_schema.fcrMobileDeviceIdOrNameSchema), _isCapabilitySupportedDecs = [_imports.trace, (0, _validateParams.default)(_schema.fcrCapabilitySchema)], _adjustOutputVolumeDecs = [_imports.trace, (0, _validateParams.default)(_schema.numberSchema)], "logger")] = (_initProto(this), (0, _logger.createLogger)({
44
47
  prefix: 'FcrMobileMediaControlImpl'
45
48
  }));
46
49
  _observable = new _imports.AgoraObservable();
47
- _cameraDeviceName = undefined;
48
- _microphoneDeviceName = undefined;
50
+ _cameraDeviceName = DEFAULT_MOBILE_CAMERA_SOURCE_ID;
51
+ _microphoneDeviceName = DEFAULT_MOBILE_MIC_SOURCE_ID;
49
52
  _screenDeviceName = undefined;
50
53
  _loopbackDeviceName = undefined;
51
54
  constructor(mediaControl) {
@@ -112,6 +115,9 @@ class FcrMobileMediaControlImpl {
112
115
  stopCameraTest() {
113
116
  this._mediaControl.getCameraTrack(this._cameraDeviceName).startTest();
114
117
  }
118
+ setCaptureParams(params) {
119
+ return this._mediaControl.getCameraTrack(this._cameraDeviceName).setCaptureParams(params);
120
+ }
115
121
  startCameraPreview(view, config) {
116
122
  this._mediaControl.getCameraTrack(this._cameraDeviceName).startPreview(config, view);
117
123
  }
@@ -202,5 +208,9 @@ class FcrMobileMediaControlImpl {
202
208
  removeObserver(observer) {
203
209
  this._observable.removeObserver(observer);
204
210
  }
211
+ release() {
212
+ this._observable.removeAllObservers();
213
+ return 0;
214
+ }
205
215
  }
206
216
  exports.FcrMobileMediaControlImpl = FcrMobileMediaControlImpl;
@@ -596,6 +596,11 @@ export interface FcrDesktopMediaControl {
596
596
  * @returns The volume of the speaker. Range from 0 to 100.
597
597
  */
598
598
  getSelectedSpeakerVolume(): number;
599
+ /**
600
+ * Get the output volume.
601
+ * @returns The output volume.
602
+ */
603
+ getOutputVolume(): number;
599
604
  /**
600
605
  * Follow the system speaker.
601
606
  * @param follow
@@ -635,6 +640,7 @@ export interface FcrMobileMediaControl {
635
640
  getCameraPosition(): FcrCameraPosition;
636
641
  startCameraTest(): void;
637
642
  stopCameraTest(): void;
643
+ setCaptureParams(params: FcrCameraCaptureParams): number;
638
644
  startCameraPreview(view: string | object, config: FcrRenderConfig): void;
639
645
  stopCameraPreview(view: string | object): void;
640
646
  stopCameraPreviewOnAllCanvas(): void;
@@ -660,6 +666,7 @@ export interface FcrMobileMediaControl {
660
666
  * @param observer The observer to remove.
661
667
  */
662
668
  removeObserver(observer: FcrMobileMediaObserver): void;
669
+ release(): void;
663
670
  }
664
671
  export declare enum FcrDeviceType {
665
672
  Camera = "camera",
@@ -34,7 +34,7 @@ function _checkInRHS(e) { if (Object(e) !== e) throw TypeError("right-hand side
34
34
  */
35
35
  class FcrMonitorControlImpl {
36
36
  static {
37
- [_initProto] = _applyDecs(this, [[_uploadEventDecs, 2, "uploadEvent"], [_imports.trace, 2, "setNeedLogUpload"]], []).e;
37
+ [_initProto] = _applyDecs(this, [[_uploadEventDecs, 2, "uploadEvent"], [_imports.trace, 2, "setNeedLogUpload"], [_imports.trace, 2, "release"]], []).e;
38
38
  }
39
39
  [(_uploadEventDecs = (0, _imports.trace)(['event']), "_monitor")] = void _initProto(this);
40
40
  _needLogUpload = true;
@@ -60,7 +60,10 @@ class FcrMonitorControlImpl {
60
60
  this._monitor.addObserver(observer);
61
61
  }
62
62
  removeObserver(observer) {
63
- this._monitor.addObserver(observer);
63
+ this._monitor.removeObserver(observer);
64
+ }
65
+ release() {
66
+ this._monitor.release();
64
67
  }
65
68
  }
66
69
  exports.FcrMonitorControlImpl = FcrMonitorControlImpl;
@@ -35,4 +35,8 @@ export interface FcrMonitorControl {
35
35
  * @param observer
36
36
  */
37
37
  removeObserver(observer: FcrMonitorObserver): void;
38
+ /**
39
+ * Releases the monitor control.
40
+ */
41
+ release(): void;
38
42
  }
@@ -1 +1,4 @@
1
- export {};
1
+ /**
2
+ * The multiplier of the keepalive timeout.
3
+ */
4
+ export declare const KEEPALIVE_TIMEOUT_MULTIPLIER = 2;