fcr-ui-scene 3.7.3 → 3.7.4-rc.1

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 (111) hide show
  1. package/lib/creator.d.ts +2 -0
  2. package/lib/creator.js +14 -0
  3. package/lib/fragments/annotation/libs.d.ts +7 -6
  4. package/lib/fragments/annotation/libs.js +9 -8
  5. package/lib/fragments/whiteboard/store.js +13 -8
  6. package/lib/global.css +6 -0
  7. package/lib/modules/action-bar/components/screen-share/submenu.js +2 -2
  8. package/lib/modules/action-bar/index.d.ts +2 -0
  9. package/lib/modules/action-bar/index.js +2 -1
  10. package/lib/modules/action-bar/store.d.ts +6 -2
  11. package/lib/modules/action-bar/store.js +56 -93
  12. package/lib/modules/annotation/annotation-toolbar-store.js +2 -2
  13. package/lib/modules/annotation/store.js +12 -14
  14. package/lib/modules/audio-stream/index.js +1 -2
  15. package/lib/modules/chat/components/chat-select/index.js +3 -0
  16. package/lib/modules/components/device-control/store.js +2 -2
  17. package/lib/modules/components/leave-meeting/index.js +4 -1
  18. package/lib/modules/components/member-window/components/video-player/components/local-video-player-with-zoom.d.ts +6 -4
  19. package/lib/modules/components/member-window/components/video-player/components/local-video-player-with-zoom.js +77 -41
  20. package/lib/modules/components/member-window/components/video-player/components/remote-video-player-with-zoom.d.ts +3 -3
  21. package/lib/modules/components/member-window/components/video-player/index.d.ts +3 -3
  22. package/lib/modules/components/member-window/types.d.ts +3 -3
  23. package/lib/modules/control-bar/store.d.ts +10 -8
  24. package/lib/modules/control-bar/store.js +47 -15
  25. package/lib/modules/control-bar/view.js +27 -13
  26. package/lib/modules/device-pretest/store.js +4 -2
  27. package/lib/modules/dialog/components/dialog-container/component/body.js +3 -24
  28. package/lib/modules/dialog/components/dialog-container/index.d.ts +4 -0
  29. package/lib/modules/dialog/components/dialog-container/index.js +67 -44
  30. package/lib/modules/dialog/components/normal-window/index.js +4 -0
  31. package/lib/modules/dialog/dialogs/control-bar/index.js +9 -32
  32. package/lib/modules/dialog/dialogs/sub-window/index.js +4 -0
  33. package/lib/modules/dialog/dialogs/video-window/index.js +28 -23
  34. package/lib/modules/dialog/hooks/useElectron.js +4 -1
  35. package/lib/modules/dialog/level-config.js +1 -1
  36. package/lib/modules/dialog/store.d.ts +4 -3
  37. package/lib/modules/dialog/store.js +14 -10
  38. package/lib/modules/event-confirm/components/window/index.d.ts +5 -2
  39. package/lib/modules/event-confirm/components/window/index.js +38 -14
  40. package/lib/modules/event-confirm/index.css +0 -2
  41. package/lib/modules/event-confirm/store.d.ts +10 -5
  42. package/lib/modules/event-confirm/store.js +62 -13
  43. package/lib/modules/event-confirm/view.js +9 -7
  44. package/lib/modules/interpreter/interpreter-list/interpreter-item/components/pick-user/index.js +1 -2
  45. package/lib/modules/interpreter/store.js +11 -13
  46. package/lib/modules/layout/components/CommonVideoRenderer.js +5 -5
  47. package/lib/modules/layout/store.js +8 -22
  48. package/lib/modules/participant/member-list-data-source.js +3 -5
  49. package/lib/modules/participant/store.js +43 -43
  50. package/lib/modules/secondary-window/index.d.ts +2 -1
  51. package/lib/modules/secondary-window/index.js +5 -0
  52. package/lib/modules/secondary-window/type.d.ts +13 -9
  53. package/lib/modules/secondary-window/view.js +12 -12
  54. package/lib/modules/setting/audio-settings/audio-settings.js +4 -2
  55. package/lib/modules/setting/config.d.ts +4 -0
  56. package/lib/modules/setting/config.js +6 -3
  57. package/lib/modules/setting/store.d.ts +8 -3
  58. package/lib/modules/setting/store.js +104 -74
  59. package/lib/modules/setting/view.js +3 -2
  60. package/lib/modules/share-screen/components/selection/index.js +6 -8
  61. package/lib/modules/share-screen/store.d.ts +9 -10
  62. package/lib/modules/share-screen/store.js +65 -90
  63. package/lib/modules/share-screen/types.d.ts +7 -8
  64. package/lib/modules/video-window/components/members/index.js +3 -3
  65. package/lib/modules/video-window/store.js +3 -3
  66. package/lib/modules/whiteboard/components/control-bar/store.d.ts +3 -0
  67. package/lib/modules/whiteboard/components/control-bar/store.js +20 -11
  68. package/lib/modules/whiteboard/components/toolbar/store.js +2 -2
  69. package/lib/modules/whiteboard/index.d.ts +10 -4
  70. package/lib/modules/whiteboard/index.js +158 -124
  71. package/lib/plugins/module-dev-plugin.js +4 -0
  72. package/lib/providers/annotation-provider.js +3 -3
  73. package/lib/providers/device-privilege-provider.js +13 -12
  74. package/lib/providers/device-provider.d.ts +37 -31
  75. package/lib/providers/device-provider.js +692 -746
  76. package/lib/providers/device-stream-provider.js +4 -4
  77. package/lib/providers/interpreter-provider.js +7 -9
  78. package/lib/providers/multi-display-provider.d.ts +8 -3
  79. package/lib/providers/multi-display-provider.js +18 -6
  80. package/lib/providers/privilege-provider.d.ts +3 -11
  81. package/lib/providers/privilege-provider.js +2 -5
  82. package/lib/providers/renderer-provider.d.ts +3 -3
  83. package/lib/providers/renderer-provider.js +20 -32
  84. package/lib/providers/room-provider.js +14 -15
  85. package/lib/providers/screen-share-provider.d.ts +12 -10
  86. package/lib/providers/screen-share-provider.js +79 -59
  87. package/lib/providers/sharing-provider.js +7 -0
  88. package/lib/providers/whiteboard-provider.js +1 -0
  89. package/lib/scenes/main-scene.js +15 -9
  90. package/lib/schema.d.ts +3 -3
  91. package/lib/schema.js +1 -1
  92. package/lib/shared-data-source/confirm-data.d.ts +19 -0
  93. package/lib/shared-data-source/confirm-data.js +119 -15
  94. package/lib/shared-data-source/screen-share-data.d.ts +29 -28
  95. package/lib/shared-data-source/screen-share-data.js +14 -8
  96. package/lib/shared-data-source/setting.js +2 -2
  97. package/lib/shared-data-source/whiteboard-data.d.ts +7 -5
  98. package/lib/shared-data-source/whiteboard-data.js +9 -8
  99. package/lib/ui-scene.d.ts +2 -0
  100. package/lib/ui-scene.js +77 -21
  101. package/lib/utilities/constant.d.ts +5 -0
  102. package/lib/utilities/constant.js +7 -2
  103. package/lib/utilities/default-config.d.ts +4 -0
  104. package/lib/utilities/default-config.js +8 -4
  105. package/lib/utilities/dialog-utils.d.ts +3 -2
  106. package/lib/utilities/dialog-utils.js +33 -14
  107. package/lib/utilities/package-info.d.ts +3 -0
  108. package/lib/utilities/package-info.js +15 -0
  109. package/lib/waiting-room-control-manager.js +6 -6
  110. package/package.json +6 -6
  111. package/public/index.html +5 -0
@@ -18,10 +18,11 @@ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/
18
18
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
19
19
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
20
20
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
21
+ var _type = require("fcr-core/lib/type");
21
22
  var _imports = require("fcr-core/lib/imports");
22
23
  var _base = require("../base");
23
24
  var _fcrCore = require("fcr-core");
24
- var _type = require("fcr-core/lib/room-control/privilege-control/type");
25
+ var _type2 = require("fcr-core/lib/room-control/privilege-control/type");
25
26
  var _privilege = require("../utilities/privilege");
26
27
  var _i18n = require("agora-ui-foundation/lib/i18n");
27
28
  var _i18nCommonData = require("../utilities/i18n-common-data");
@@ -53,9 +54,9 @@ var FcrUIDevicePrivilegeProviderImpl = exports.FcrUIDevicePrivilegeProviderImpl
53
54
  _context.next = 4;
54
55
  break;
55
56
  }
56
- hasVideoPermission = (0, _privilege.hasPermissionWithTargetRoleEnabled)(event.permissionInfo, _fcrCore.FcrPermissionAction.StreamStartVideo, _type.FcrPrivilegeUserRole.SELF);
57
+ hasVideoPermission = (0, _privilege.hasPermissionWithTargetRoleEnabled)(event.permissionInfo, _fcrCore.FcrPermissionAction.StreamStartVideo, _type2.FcrPrivilegeUserRole.SELF);
57
58
  localStream = _this._streamControl.getStreamsByUserId(localUserId).find(function (stream) {
58
- return stream.videoSourceType === _imports.AgoraRtcVideoSourceType.CAMERA;
59
+ return stream.videoSourceType === _type.FcrVideoSourceType.CAMERA;
59
60
  });
60
61
  hasVideo = (localStream === null || localStream === void 0 ? void 0 : localStream.streamType) === _fcrCore.FcrStreamType.VIDEO || (localStream === null || localStream === void 0 ? void 0 : localStream.streamType) === _fcrCore.FcrStreamType.BOTH;
61
62
  if (!hasVideoPermission) {
@@ -83,9 +84,9 @@ var FcrUIDevicePrivilegeProviderImpl = exports.FcrUIDevicePrivilegeProviderImpl
83
84
  _context.next = 8;
84
85
  break;
85
86
  }
86
- hasAudioPermission = (0, _privilege.hasPermissionWithTargetRoleEnabled)(event.permissionInfo, _fcrCore.FcrPermissionAction.StreamStartAudio, _type.FcrPrivilegeUserRole.SELF);
87
+ hasAudioPermission = (0, _privilege.hasPermissionWithTargetRoleEnabled)(event.permissionInfo, _fcrCore.FcrPermissionAction.StreamStartAudio, _type2.FcrPrivilegeUserRole.SELF);
87
88
  _localStream = _this._streamControl.getStreamsByUserId(localUserId).find(function (stream) {
88
- return stream.videoSourceType === _imports.AgoraRtcVideoSourceType.CAMERA;
89
+ return stream.videoSourceType === _type.FcrVideoSourceType.CAMERA;
89
90
  });
90
91
  hasAudio = (_localStream === null || _localStream === void 0 ? void 0 : _localStream.streamType) === _fcrCore.FcrStreamType.AUDIO || (_localStream === null || _localStream === void 0 ? void 0 : _localStream.streamType) === _fcrCore.FcrStreamType.BOTH;
91
92
  if (!hasAudioPermission) {
@@ -127,13 +128,13 @@ var FcrUIDevicePrivilegeProviderImpl = exports.FcrUIDevicePrivilegeProviderImpl
127
128
  return _regenerator["default"].wrap(function (_context2) {
128
129
  while (1) switch (_context2.prev = _context2.next) {
129
130
  case 0:
130
- hasVideoPermission = (0, _privilege.hasPermissionWithTargetRoleEnabled)(_this._privilegeControl.getAllLocalUserPermissionInfo(), _fcrCore.FcrPermissionAction.StreamStartVideo, _type.FcrPrivilegeUserRole.SELF);
131
- hasAudioPermission = (0, _privilege.hasPermissionWithTargetRoleEnabled)(_this._privilegeControl.getAllLocalUserPermissionInfo(), _fcrCore.FcrPermissionAction.StreamStartAudio, _type.FcrPrivilegeUserRole.SELF);
131
+ hasVideoPermission = (0, _privilege.hasPermissionWithTargetRoleEnabled)(_this._privilegeControl.getAllLocalUserPermissionInfo(), _fcrCore.FcrPermissionAction.StreamStartVideo, _type2.FcrPrivilegeUserRole.SELF);
132
+ hasAudioPermission = (0, _privilege.hasPermissionWithTargetRoleEnabled)(_this._privilegeControl.getAllLocalUserPermissionInfo(), _fcrCore.FcrPermissionAction.StreamStartAudio, _type2.FcrPrivilegeUserRole.SELF);
132
133
  events.forEach(function (event) {
133
134
  var stream = event.modifiedStream;
134
135
  var operatorUser = event.operatorUser;
135
136
  var operatorUserRole = (operatorUser === null || operatorUser === void 0 ? void 0 : operatorUser.userRole) || _fcrCore.FcrUserRole.HOST;
136
- if (stream.owner.userId === localUserId && (operatorUser === null || operatorUser === void 0 ? void 0 : operatorUser.userId) !== localUserId && stream.videoSourceType === _imports.AgoraRtcVideoSourceType.CAMERA) {
137
+ if (stream.owner.userId === localUserId && (operatorUser === null || operatorUser === void 0 ? void 0 : operatorUser.userId) !== localUserId && stream.videoSourceType === _type.FcrVideoSourceType.CAMERA) {
137
138
  var hasNoVideo = stream.streamType === _fcrCore.FcrStreamType.NONE || stream.streamType === _fcrCore.FcrStreamType.AUDIO;
138
139
  var hasNoAudio = stream.streamType === _fcrCore.FcrStreamType.NONE || stream.streamType === _fcrCore.FcrStreamType.VIDEO;
139
140
  var hasVideo = stream.streamType === _fcrCore.FcrStreamType.VIDEO || stream.streamType === _fcrCore.FcrStreamType.BOTH;
@@ -247,10 +248,10 @@ var FcrUIDevicePrivilegeProviderImpl = exports.FcrUIDevicePrivilegeProviderImpl
247
248
  return _context3.abrupt("return", true);
248
249
  case 1:
249
250
  permissionInfo = this._privilegeControl.getLocalUserPermissionInfo(_fcrCore.FcrPermissionAction.StreamStartVideo);
250
- hasVideoPermission = (0, _privilege.isPermissionWithTargetRoleEnabled)(permissionInfo, _type.FcrPrivilegeUserRole.SELF);
251
+ hasVideoPermission = (0, _privilege.isPermissionWithTargetRoleEnabled)(permissionInfo, _type2.FcrPrivilegeUserRole.SELF);
251
252
  localUserId = this._userControl.getLocalUser().userId;
252
253
  localStream = this._streamControl.getStreamsByUserId(localUserId).find(function (stream) {
253
- return stream.videoSourceType === _imports.AgoraRtcVideoSourceType.CAMERA;
254
+ return stream.videoSourceType === _type.FcrVideoSourceType.CAMERA;
254
255
  });
255
256
  hasVideo = (localStream === null || localStream === void 0 ? void 0 : localStream.streamType) === _fcrCore.FcrStreamType.VIDEO || (localStream === null || localStream === void 0 ? void 0 : localStream.streamType) === _fcrCore.FcrStreamType.BOTH;
256
257
  if (!this._firstGetCameraPrivilege) {
@@ -329,10 +330,10 @@ var FcrUIDevicePrivilegeProviderImpl = exports.FcrUIDevicePrivilegeProviderImpl
329
330
  return _context4.abrupt("return", true);
330
331
  case 1:
331
332
  permissionInfo = this._privilegeControl.getLocalUserPermissionInfo(_fcrCore.FcrPermissionAction.StreamStartAudio);
332
- hasAudioPermission = (0, _privilege.isPermissionWithTargetRoleEnabled)(permissionInfo, _type.FcrPrivilegeUserRole.SELF);
333
+ hasAudioPermission = (0, _privilege.isPermissionWithTargetRoleEnabled)(permissionInfo, _type2.FcrPrivilegeUserRole.SELF);
333
334
  localUserId = this._userControl.getLocalUser().userId;
334
335
  localStream = this._streamControl.getStreamsByUserId(localUserId).find(function (stream) {
335
- return stream.videoSourceType === _imports.AgoraRtcVideoSourceType.CAMERA;
336
+ return stream.videoSourceType === _type.FcrVideoSourceType.CAMERA;
336
337
  });
337
338
  hasAudio = (localStream === null || localStream === void 0 ? void 0 : localStream.streamType) === _fcrCore.FcrStreamType.AUDIO || (localStream === null || localStream === void 0 ? void 0 : localStream.streamType) === _fcrCore.FcrStreamType.BOTH;
338
339
  if (!this._firstGetMicrophonePrivilege) {
@@ -1,7 +1,7 @@
1
1
  import { FcrBeautyOptions, FcrCameraTrack, FcrLoopbackTrack, FcrMicrophoneTrack, FcrScreenTrack } from 'fcr-core/lib/media-control/type';
2
2
  import { FcrDeviceInfo } from 'fcr-core/lib/type';
3
3
  import { FcrCapability, FcrDesktopMediaControl } from 'fcr-core';
4
- import { AgoraRtcDisplayInfo, AgoraRtcWindowInfo } from 'agora-rte-sdk/lib/core/rtc/type';
4
+ import { FcrDisplayInfo, FcrWindowInfo } from 'fcr-core/lib/type';
5
5
  import { VirtualBackground } from '../modules/device-pretest/assets/virtual-backdound-resources';
6
6
  import { FcrUIVideoEffectType, FcrUIBeautyKey, FcrUIConnectType, FcrUIResource, FcrUIDeviceObserver, FcrUIAiDenoiseLevel, FcrUiResourceType } from '../type';
7
7
  import { FcrUIEventProvider } from './event-provider';
@@ -33,7 +33,7 @@ export interface FcrUIDeviceProvider {
33
33
  /**
34
34
  * 当前摄像头Track对象
35
35
  */
36
- get cameraTrack(): FcrCameraTrack;
36
+ get cameraTrack(): FcrCameraTrack | null;
37
37
  /**
38
38
  * 当前麦克风Track对象
39
39
  */
@@ -138,10 +138,6 @@ export interface FcrUIDeviceProvider {
138
138
  * @param id
139
139
  */
140
140
  getLoopbackTrack(id: string): FcrLoopbackTrack;
141
- /**
142
- * 检查当前声卡采集设备已安装(仅对Macos生效)
143
- */
144
- checkLoopbackDevice(): Promise<number>;
145
141
  /**
146
142
  * 检查当前平台能力支持
147
143
  * @param type
@@ -150,11 +146,11 @@ export interface FcrUIDeviceProvider {
150
146
  /**
151
147
  * 获取屏幕共享窗口列表
152
148
  */
153
- getWindowList(): Promise<AgoraRtcWindowInfo[]>;
149
+ getWindowList(): Promise<FcrWindowInfo[]>;
154
150
  /**
155
151
  * 获取屏幕共享显示器列表
156
152
  */
157
- getDisplayList(): Promise<AgoraRtcDisplayInfo[]>;
153
+ getDisplayList(): Promise<FcrDisplayInfo[]>;
158
154
  /**
159
155
  * 应用是否有麦克风权限
160
156
  */
@@ -266,6 +262,10 @@ export interface FcrUIDeviceProvider {
266
262
  * @param enabled
267
263
  */
268
264
  toggleLocalCameraPreview(enabled: boolean): void;
265
+ /**
266
+ * 获取声卡采集设备ID
267
+ */
268
+ getLoopbackDeviceId(): string | null;
269
269
  addObserver(observer: FcrUIDeviceObserver): void;
270
270
  removeObserver(observer: FcrUIDeviceObserver): void;
271
271
  }
@@ -279,7 +279,7 @@ export declare class FcrUIDeviceProviderImpl implements FcrUIDeviceProvider {
279
279
  private _hasExecutedOpenCamera;
280
280
  private _hasExecutedConnectAudio;
281
281
  private _isAudioConnected;
282
- private _cameraVideoTrack?;
282
+ private _cameraVideoTrack;
283
283
  private _microphoneAudioTrack;
284
284
  private _localVideoViewSet;
285
285
  private _videoRotation;
@@ -292,14 +292,13 @@ export declare class FcrUIDeviceProviderImpl implements FcrUIDeviceProvider {
292
292
  private _mediaControlObserver;
293
293
  private _defaultMirror;
294
294
  private _volumeIndicationInterval;
295
- private accessor _isDeviceListInited;
296
295
  private accessor _microphoneDevice;
297
296
  private accessor _microphone;
298
297
  private accessor _speakerDevice;
299
298
  private accessor _speaker;
299
+ private accessor _cameraDevice;
300
300
  accessor currentIsMirror: boolean;
301
301
  accessor showForceOpenEffectDialog: boolean;
302
- accessor cameraId: string;
303
302
  accessor cameraEnabled: boolean;
304
303
  accessor showCameraPreview: boolean;
305
304
  accessor microphoneEnabled: boolean;
@@ -329,6 +328,7 @@ export declare class FcrUIDeviceProviderImpl implements FcrUIDeviceProvider {
329
328
  ifNeedExecuteOpenCamera(): boolean;
330
329
  connectAudio(includeMicrophone: boolean): void;
331
330
  disconnectAudio(): void;
331
+ get cameraId(): string;
332
332
  get speakerId(): string;
333
333
  get microphoneId(): string;
334
334
  get defaultMirror(): boolean;
@@ -344,21 +344,18 @@ export declare class FcrUIDeviceProviderImpl implements FcrUIDeviceProvider {
344
344
  get isAudioConnected(): boolean;
345
345
  get shouldEnableMicBeforeSession(): boolean;
346
346
  constructor(_eventProvider: FcrUIEventProvider, _mediaControl: FcrDesktopMediaControl, _sharedSettingDataSource: FcrUISharedSettingDataSource);
347
+ release(): void;
347
348
  getScreenTrack(id: string): FcrScreenTrack;
348
349
  getLoopbackTrack(id: string): FcrLoopbackTrack;
349
- checkLoopbackDevice(): Promise<number>;
350
350
  isCapabilitySupported(type: FcrCapability): boolean;
351
- getWindowList(): Promise<AgoraRtcWindowInfo[]>;
352
- getDisplayList(): Promise<AgoraRtcDisplayInfo[]>;
353
- get cameraTrack(): FcrCameraTrack;
351
+ getWindowList(): Promise<FcrWindowInfo[]>;
352
+ getDisplayList(): Promise<FcrDisplayInfo[]>;
353
+ get cameraTrack(): FcrCameraTrack | null;
354
354
  get microphoneTrack(): FcrMicrophoneTrack | null;
355
- private _initDefaultDevice;
356
- private _initDeviceList;
357
355
  addObserver(observer: FcrUIDeviceObserver): void;
358
356
  removeObserver(observer: FcrUIDeviceObserver): void;
359
357
  startPlayLocalVideo(view: HTMLElement, isMirror?: boolean): void;
360
358
  stopPlayLocalVideo(view: HTMLElement): void;
361
- private _handleSpeakerDetectingChanged;
362
359
  startSpeakerTest(): void;
363
360
  stopSpeakerTest(): void;
364
361
  setCurrentIsMirror(isMirror: boolean): void;
@@ -368,12 +365,10 @@ export declare class FcrUIDeviceProviderImpl implements FcrUIDeviceProvider {
368
365
  handleForceOpenVideoEffect(): void;
369
366
  setVideoOrientation(): void;
370
367
  setCameraEnabled(enable: boolean): void;
371
- private _handleMicrophoneAudioTrack;
368
+ private _handleCameraEnabledChanged;
372
369
  setMicrophoneEnabled(enable: boolean): void;
373
- private _handleMicrophoneEnabledChanged;
374
370
  toggleLocalMirror(enable: boolean): void;
375
371
  resetMirror(): void;
376
- private _handleMicrophoneDetectingChanged;
377
372
  startMicrophoneTest(): void;
378
373
  stopMicrophoneTest(): void;
379
374
  enableVirtualBackground(enable: boolean, source?: VirtualBackground): void;
@@ -384,10 +379,7 @@ export declare class FcrUIDeviceProviderImpl implements FcrUIDeviceProvider {
384
379
  enableAudioStereo(enable: boolean): void;
385
380
  setNoiseLevel(level: FcrUIAiDenoiseLevel): void;
386
381
  setCameraId(cameraId: string): void;
387
- private _handleMicrophoneIdChanged;
388
- private _handleMicrophoneDeviceIdChanged;
389
- private _handleSpeakerDeviceIdChanged;
390
- private _handleSpeakerIdChanged;
382
+ setMainRoomAudioOff(enable: boolean): void;
391
383
  setSpeakerId(speakerId: string): void;
392
384
  setMicrophoneId(microphoneId: string): void;
393
385
  setSpeakerVolume(value: number): void;
@@ -397,29 +389,43 @@ export declare class FcrUIDeviceProviderImpl implements FcrUIDeviceProvider {
397
389
  loadUiResources(uiResource: FcrUIResource): Promise<void>;
398
390
  loadZipResources(zipUrls: string[], type: FcrUiResourceType, callback: (filePathList: string[], type: FcrUiResourceType) => void): Promise<void>;
399
391
  toggleAGC(enable: boolean): number;
400
- release(): void;
401
392
  setConnectType(connectType: FcrUIConnectType): void;
393
+ toggleLocalCameraPreview(enabled: boolean): void;
394
+ getLoopbackDeviceId(): string | null;
395
+ private _initDeviceList;
396
+ private _handleMicrophoneAudioTrack;
397
+ private _handleMicrophoneEnabledChanged;
398
+ private _handleCameraVideoTrack;
399
+ private _handleCameraDeviceIdChanged;
400
+ private _handleSpeakerDetectingChanged;
401
+ private _stopSelectedSpeakerTest;
402
+ private _handleMicrophoneDetectingChanged;
403
+ private _stopMicrophoneTest;
404
+ private _handleMicrophoneIdChanged;
405
+ private _handleMicrophoneDeviceIdChanged;
406
+ private _handleSpeakerDeviceIdChanged;
407
+ private _handleSpeakerIdChanged;
402
408
  private _fetchZipAndUnzip;
403
409
  private _updateVirtualBackgroundList;
404
410
  private _handleSystemSelectedSpeakerChanged;
405
411
  private _correctSystemSpeakerDeviceId;
406
412
  private _handleSystemSelectedMicrophoneChanged;
407
413
  private _correctSystemSelectedMicrophoneDeviceId;
414
+ private _handleSelectedSpeakerVolumeUpdated;
408
415
  private _handleSpeakerTestVolumeIndicationUpdated;
409
- private _handleSpeakerVolumeUpdated;
410
416
  private _handleMicrophoneVolumeIndicationUpdated;
411
- private _handleCameraChanged;
412
- toggleLocalCameraPreview(enabled: boolean): void;
417
+ private _toggleLocalCameraPreview;
418
+ private _handleCameraAdded;
419
+ private _handleCameraRemoved;
413
420
  private _handleCameraListUpdated;
414
421
  private _handleMicrophoneAdded;
415
422
  private _handleMicrophoneRemoved;
416
- private _correctMicrophoneDeviceId;
417
423
  private _handleMicrophoneListUpdated;
418
424
  private _handleSpeakerAdded;
419
425
  private _handleSpeakerRemoved;
420
426
  private _handleSpeakerListUpdated;
421
427
  private _getMicrophoneList;
422
428
  private _getSpeakerList;
423
- setMainRoomAudioOff(enable: boolean): void;
429
+ private _formatDeviceList;
424
430
  private _loadBuiltinResources;
425
431
  }