fcr-core 3.8.0 → 3.8.1-beta

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.
@@ -29,7 +29,7 @@ export declare class FcrSharingControlImpl implements FcrSharingControl {
29
29
  get ownerId(): string;
30
30
  get ownerStream(): FcrStreamInfo | null;
31
31
  constructor(_scene: AgoraRteScene, _api: FcrCoreServiceApi, _engine: AgoraRteEngine, _privilegeControl: FcrPrivilegeControl, _streamControl: FcrStreamControl, _sharedCache: FcrSharedCache, _userControl: FcrUserControl);
32
- startScreenSharing(config: FcrScreenStreamCreateConfig, size?: FcrSize): Promise<string>;
32
+ startScreenSharing(config: FcrScreenStreamCreateConfig, size?: FcrSize, labels?: Map<string, any>): Promise<string>;
33
33
  startWhiteboard(): Promise<void>;
34
34
  updateScreenSharing(enableAnnotation: boolean): Promise<void>;
35
35
  stop(): Promise<void>;
@@ -85,9 +85,9 @@ class FcrSharingControlImpl {
85
85
  this._scene.addObserver(this._sceneObserver);
86
86
  this.logger.info(`initialized, room id: ${this._scene.sceneId}`);
87
87
  }
88
- async startScreenSharing(config, size) {
88
+ async startScreenSharing(config, size, labels) {
89
89
  try {
90
- const streamId = await this._streamControl.addLocalScreenStream(config, size);
90
+ const streamId = await this._streamControl.addLocalScreenStream(config, size, labels);
91
91
  return streamId;
92
92
  } catch (error) {
93
93
  throw error;
@@ -319,7 +319,7 @@ class FcrStreamControlImpl {
319
319
  takeSnapshot(streamId, filePath) {
320
320
  return this._scene.streamPlayer.takeSnapshot(streamId, filePath);
321
321
  }
322
- async addLocalScreenStream(config, size) {
322
+ async addLocalScreenStream(config, size, labels) {
323
323
  const res = await (0, _error.handleRequestError)(() => this._api.startShareScreen({
324
324
  roomId: this._scene.sceneId,
325
325
  userId: this._scene.getLocalUser().getLocalUserId(),
@@ -352,6 +352,10 @@ class FcrStreamControlImpl {
352
352
  } = res;
353
353
  this._screenStreamId = streamId;
354
354
  this._scene.localUser.prepareToPublishStream(streamId, token);
355
+ if (labels) {
356
+ // add label to scene
357
+ this._scene.addLocalStreamLabels(streamId, labels);
358
+ }
355
359
  return streamId;
356
360
  }
357
361
  async removeScreenStream() {
@@ -362,6 +366,7 @@ class FcrStreamControlImpl {
362
366
  });
363
367
  }, _error.FcrErrorModuleCode.ROOM_STREAM, 'remove screen stream failed');
364
368
  if (this._screenStreamId) {
369
+ this._scene.removeLocalStreamLabel(this._screenStreamId);
365
370
  this._scene.localUser.removePreparePublishStream(this._screenStreamId);
366
371
  }
367
372
  return res;
@@ -114,7 +114,7 @@ export interface FcrStreamControl {
114
114
  * Adds a local screen stream.
115
115
  * @param config
116
116
  */
117
- addLocalScreenStream(config: FcrScreenStreamCreateConfig, size?: FcrSize): Promise<string>;
117
+ addLocalScreenStream(config: FcrScreenStreamCreateConfig, size?: FcrSize, label?: Map<string, any>): Promise<string>;
118
118
  /**
119
119
  * Removes the local screen stream.
120
120
  */
@@ -98,8 +98,12 @@ class FcrRoomRouterImpl {
98
98
  this._abortController = null;
99
99
  if (error) {
100
100
  this._handleJoinRoomError(error);
101
- throw error;
101
+ return Promise.reject(error);
102
102
  }
103
+ if (!this._roomControl) {
104
+ return Promise.reject(new Error('Room control is not initialized'));
105
+ }
106
+ return Promise.resolve(this._roomControl);
103
107
  }
104
108
  async leaveRoom() {
105
109
  this._abortController?.abort();
@@ -1,7 +1,7 @@
1
1
  import { FcrInterpreterRoomControlImpl } from '../room-control/interpreter-control/room';
2
2
  import { FcrJoinBeforeHostWaitingRoomControlImpl } from '../room-control/join-before-host-waitingroom-control';
3
3
  import { FcrMainRoomControlImpl } from '../room-control/mainroom-control';
4
- import { FcrJoinBeforeHostWaitingRoomControl, FcrMainRoomControl, FcrRoomJoinOptions, FcrRoomType, FcrWaitingRoomControl } from '../room-control/type';
4
+ import { FcrBaseRoomControl, FcrJoinBeforeHostWaitingRoomControl, FcrMainRoomControl, FcrRoomJoinOptions, FcrRoomType, FcrWaitingRoomControl } from '../room-control/type';
5
5
  import { FcrWaitingRoomControlImpl } from '../room-control/waitingroom-control';
6
6
  import { FcrError } from '../utilities/error';
7
7
  export type FcrRoomControlType = FcrMainRoomControl | FcrWaitingRoomControl | FcrJoinBeforeHostWaitingRoomControl;
@@ -34,7 +34,7 @@ export interface FcrRoomRouter {
34
34
  /**
35
35
  * 加入会议
36
36
  */
37
- joinRoom(options: FcrRoomJoinOptions): Promise<void>;
37
+ joinRoom(options: FcrRoomJoinOptions): Promise<FcrBaseRoomControl>;
38
38
  /**
39
39
  * 离开会议
40
40
  */
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "fcr-core",
3
3
  "description": "Core APIs for building online scenes",
4
- "version": "3.8.0",
4
+ "version": "3.8.1-beta",
5
5
  "module": "lib/index.js",
6
6
  "types": "lib/index.d.ts",
7
7
  "files": [
@@ -40,7 +40,7 @@
40
40
  "@types/lodash": "^4.14.168",
41
41
  "@types/sinon": "^17.0.2",
42
42
  "@types/uuid": "^8.3.0",
43
- "agora-toolchain": "3.8.0",
43
+ "agora-toolchain": "3.8.1-beta",
44
44
  "core-js": "^3.33.3",
45
45
  "decomment": "^0.9.5",
46
46
  "husky": "^9.0.11",
@@ -60,8 +60,8 @@
60
60
  "@netless/video-js-plugin": "^0.3.8",
61
61
  "@netless/white-snapshot": "^0.4.2",
62
62
  "@netless/window-manager": "^1.0.7-beta.6",
63
- "agora-foundation": "3.8.0",
64
- "agora-rte-sdk": "3.8.0",
63
+ "agora-foundation": "3.8.1-beta",
64
+ "agora-rte-sdk": "3.8.1-beta",
65
65
  "await-to-js": "^3.0.0",
66
66
  "dayjs": "^1.10.4",
67
67
  "easemob-websdk": "4.13.0",
@@ -92,4 +92,4 @@
92
92
  "lint-staged": {
93
93
  "*.{ts,tsx,html,css}": "prettier --write"
94
94
  }
95
- }
95
+ }