trtc-cloud-js-sdk 2.12.3 → 2.13.0-beta.10

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "trtc-cloud-js-sdk",
3
- "version": "2.12.3",
3
+ "version": "2.13.0-beta.10",
4
4
  "description": "Tencent Cloud RTC SDK for Web And Electron",
5
5
  "main": "trtc-cloud-js-sdk.js",
6
6
  "module": "trtc-cloud-js-sdk.esm.js",
@@ -19,6 +19,6 @@
19
19
  "author": "Tencent Cloud Client R&D Center",
20
20
  "license": "ISC",
21
21
  "dependencies": {
22
- "trtc-sdk-v5": "5.18.1-kit.2"
22
+ "trtc-sdk-v5": "5.18.4-beta.17"
23
23
  }
24
24
  }
@@ -2,6 +2,7 @@ import EventEmitter from 'eventemitter3';
2
2
  import { VirtualBackground } from 'trtc-sdk-v5/plugins/video-effect/virtual-background';
3
3
  import { BasicBeauty } from 'trtc-sdk-v5/plugins/video-effect/basic-beauty';
4
4
  import VideoMixer from 'trtc-sdk-v5/plugins/video-effect/video-mixer';
5
+ import Whiteboard from 'trtc-sdk-v5/plugins/whiteboard';
5
6
 
6
7
  declare enum TRTCVideoResolution {
7
8
  TRTCVideoResolution_120_120 = 1,
@@ -780,11 +781,14 @@ interface ITRTCMediaMixingManager {
780
781
  addMediaSource(mediaSource: TRTCMediaSource): Promise<void>;
781
782
  removeMediaSource(mediaSource: TRTCMediaSource): Promise<void>;
782
783
  updateMediaSource(mediaSource: TRTCMediaSource): Promise<void>;
783
- startPublish(): Promise<void>;
784
+ startPublish(options?: {
785
+ streamType?: TRTCVideoStreamType;
786
+ }): Promise<void>;
784
787
  stopPublish(): Promise<void>;
785
788
  updatePublishParams(params: TRTCMediaMixingEncParam): Promise<void>;
786
- bindPreviewArea(view: HTMLElement | null): void;
787
- destroy(): void;
789
+ bindPreviewArea(view: HTMLElement | null): Promise<void>;
790
+ updatePreviewArea(view: HTMLElement | null): Promise<void>;
791
+ destroy(): Promise<void>;
788
792
  on(event: string, func: (...args: any[]) => void): void;
789
793
  off(event: string, func: (...args: any[]) => void): void;
790
794
  }
@@ -813,6 +817,7 @@ declare class TRTCMediaMixingManager implements ITRTCMediaMixingManager {
813
817
  private sourceList;
814
818
  private trtcSourceMap;
815
819
  private mixVideoTrack;
820
+ private publishStreamType;
816
821
  private selectedSource;
817
822
  private logger;
818
823
  private trtc;
@@ -853,6 +858,7 @@ declare class TRTCMediaMixingManager implements ITRTCMediaMixingManager {
853
858
  * mediaMixingManager.bindPreviewArea( previewDOM);
854
859
  */
855
860
  bindPreviewArea(view: HTMLElement | null): Promise<void>;
861
+ updatePreviewArea(view: HTMLElement | null): Promise<void>;
856
862
  private _getTRTCSourceKey;
857
863
  private _getTRTCFillMode;
858
864
  private _getTRTCVideoProfile;
@@ -881,9 +887,13 @@ declare class TRTCMediaMixingManager implements ITRTCMediaMixingManager {
881
887
  updateMediaSource(mediaSource: TRTCMediaSource): Promise<void>;
882
888
  /**
883
889
  * 开始推流
890
+ * @param options {Object} - 推流参数,可选
891
+ * @param options.streamType {TRTCVideoStreamType} - 混流输出推流目标,默认主流。
884
892
  * @returns {Promise<void>}
885
893
  */
886
- startPublish(): Promise<void>;
894
+ startPublish(options?: {
895
+ streamType?: TRTCVideoStreamType;
896
+ }): Promise<void>;
887
897
  /**
888
898
  * 停止推流
889
899
  * @returns {Promise<void>}
@@ -925,6 +935,107 @@ declare class TRTCMediaMixingManager implements ITRTCMediaMixingManager {
925
935
  private unselectMediaSource;
926
936
  }
927
937
 
938
+ declare type WhiteboardToolType = 'pen' | 'rect' | 'ellipse' | 'arrow' | 'laser' | 'eraserObject';
939
+ declare type WhiteboardOp = 'undo' | 'redo' | 'clearall';
940
+ interface WhiteboardCanvasInfo {
941
+ width: number;
942
+ height: number;
943
+ }
944
+ interface WhiteboardToolConfig {
945
+ type?: WhiteboardToolType;
946
+ color?: string | number;
947
+ line_width?: number;
948
+ laserFadeDuration?: number;
949
+ }
950
+ interface WhiteboardRecvCommand {
951
+ enable: number;
952
+ op?: WhiteboardOp;
953
+ owner_id?: string;
954
+ /**
955
+ * 白板角色(对齐插件 targetUser 语义):
956
+ * - 空 / 不传 -> host,本端作为白板发起方;
957
+ * - 非空 userId -> guest,去看/画该 userId(host)的白板。
958
+ * 运行中传入非空值可做 guest→guest 的目标 host 切换。
959
+ * 注意:guest 需先 startRemoteView 把目标 host 的远端画面渲染进同一个 view 容器。
960
+ */
961
+ target_user?: string;
962
+ view_handle?: number | string | HTMLElement;
963
+ canvas?: WhiteboardCanvasInfo;
964
+ tool?: WhiteboardToolConfig;
965
+ whiteboard?: {
966
+ interactive?: boolean;
967
+ };
968
+ }
969
+ interface ITRTCWhiteboardManager {
970
+ onRecvWhiteboardCommand(command: WhiteboardRecvCommand): Promise<void>;
971
+ destroy(): Promise<void>;
972
+ on(event: string, func: (...args: any[]) => void): void;
973
+ off(event: string, func: (...args: any[]) => void): void;
974
+ }
975
+ /**
976
+ * 白板事件 event_type 枚举,取值与 native 完全一致。
977
+ * native 通过 onExperimentalEvent("onSendWhiteboardCommand", params) 上抛,
978
+ * 由 params.event_type 区分具体事件。
979
+ */
980
+ declare enum TRTCWhiteboardEvent {
981
+ STARTED = "started",
982
+ STOPPED = "stopped",
983
+ ERROR = "error",
984
+ STALLED = "stalled",
985
+ RESUMED = "resumed",
986
+ UNDO_STATE_CHANGED = "undo-state-changed",
987
+ REDO_STATE_CHANGED = "redo-state-changed"
988
+ }
989
+ /**
990
+ * native 上抛白板事件时统一使用的 experimental event name。
991
+ * 对齐 native:TRTCCloudListener.onExperimentalEvent(name, params)。
992
+ */
993
+ declare const WHITEBOARD_EXPERIMENTAL_EVENT_NAME = "onSendWhiteboardCommand";
994
+ /**
995
+ * onExperimentalEvent 上抛的 params(JSON 字符串反序列化后)结构。
996
+ * 字段命名对齐 native(snake_case),确保上层跨端解析逻辑一致。
997
+ */
998
+ interface WhiteboardExperimentalEventPayload {
999
+ event_type: TRTCWhiteboardEvent | `${TRTCWhiteboardEvent}`;
1000
+ error_code?: number;
1001
+ error_message?: string;
1002
+ can_undo?: boolean;
1003
+ can_redo?: boolean;
1004
+ target_user?: string;
1005
+ pending_count?: number;
1006
+ resent_count?: number;
1007
+ reason?: string;
1008
+ }
1009
+
1010
+ declare class TRTCWhiteboardManager implements ITRTCWhiteboardManager {
1011
+ static whiteboardManager: TRTCWhiteboardManager | null;
1012
+ private trtc;
1013
+ private trtcCloud;
1014
+ private readonly eventEmitter;
1015
+ private boundPlugin;
1016
+ private started;
1017
+ constructor(options: {
1018
+ trtc: any;
1019
+ trtcCloud?: any;
1020
+ });
1021
+ onRecvWhiteboardCommand(command: WhiteboardRecvCommand): Promise<void>;
1022
+ private _start;
1023
+ private _update;
1024
+ private _stop;
1025
+ private _applyLocalOp;
1026
+ /** 按翻译表把插件事件转成 native event_type 上抛;同一插件实例只绑一次。 */
1027
+ private _bindPluginEvents;
1028
+ /**
1029
+ * 对齐 native 的事件上抛:
1030
+ * 1. 通过 trtcCloud 主监听回调抛 onExperimentalEvent(name, paramsJson)——与 native 一致;
1031
+ * 2. 同时在 manager 自身 eventEmitter 上按 event_type 抛出,兼容已有订阅方式。
1032
+ */
1033
+ private _emit;
1034
+ on(event: string, func: (...args: any[]) => void): void;
1035
+ off(event: string, func: (...args: any[]) => void): void;
1036
+ destroy(): Promise<void>;
1037
+ }
1038
+
928
1039
  /**
929
1040
  * 转录参数
930
1041
  */
@@ -1058,6 +1169,7 @@ declare class AITranscriberManager implements IAITranscriberManager {
1058
1169
  destroy(): void;
1059
1170
  }
1060
1171
 
1172
+ declare const loggerManager: any;
1061
1173
  declare class TRTC_Cloud extends EventEmitter {
1062
1174
  static shareInstance: TRTC_Cloud | null;
1063
1175
  static subCloudMap: Map<TRTC_Cloud, TRTC_Cloud>;
@@ -1127,7 +1239,7 @@ declare class TRTC_Cloud extends EventEmitter {
1127
1239
  private _hasJoinedRoom;
1128
1240
  private _isExitingRoom;
1129
1241
  constructor(config?: ITRTCCloudConfig);
1130
- static getPlugin(pluginName: string): typeof VirtualBackground | typeof BasicBeauty | typeof VideoMixer | null;
1242
+ static getPlugin(pluginName: string): typeof VirtualBackground | typeof BasicBeauty | typeof VideoMixer | typeof Whiteboard | null;
1131
1243
  /**
1132
1244
  * 创建 TRTCCloud 对象单例
1133
1245
  * @param {ITRTCCloudConfig} config 构造函数初始化
@@ -1632,6 +1744,7 @@ declare class TRTC_Cloud extends EventEmitter {
1632
1744
  * @param {Number} params.videoFps 帧率
1633
1745
  * @param {Number} params.videoBitrate 码率
1634
1746
  * @param {Boolean=} params.screenAudio 屏幕分享是否采集系统音频, 默认 false 不采集
1747
+ * @param {Boolean=} params.applyResolutionConstraints 是否将设置的分辨率作为约束应用于屏幕采集, 默认 false
1635
1748
  * @param {MediaStreamTrack=} params.videoTrack 自定义采集的 videoTrack
1636
1749
  * **Note:**
1637
1750
  * - 采集系统声音只支持 Chrome M74+ ,在 Windows 和 Chrome OS 上,可以捕获整个系统的音频
@@ -1673,10 +1786,13 @@ declare class TRTC_Cloud extends EventEmitter {
1673
1786
  * await trtcCloud.stopScreenShare();
1674
1787
  */
1675
1788
  stopScreenShare(): Promise<void>;
1676
- _startPublishVideoTrack({ videoTrack }: {
1789
+ _startPublishVideoTrack({ videoTrack, streamType }: {
1677
1790
  videoTrack: MediaStreamTrack;
1791
+ streamType?: TRTCVideoStreamType;
1792
+ }): Promise<void>;
1793
+ _stopPublishVideoTrack({ streamType }?: {
1794
+ streamType?: TRTCVideoStreamType;
1678
1795
  }): Promise<void>;
1679
- _stopPublishVideoTrack(): Promise<void>;
1680
1796
  startScreenCapture(): void;
1681
1797
  pauseScreenCapture(): void;
1682
1798
  resumeScreenCapture(): void;
@@ -2040,7 +2156,12 @@ declare class TRTC_Cloud extends EventEmitter {
2040
2156
  * @returns {TRTCMediaMixingManager | null}
2041
2157
  */
2042
2158
  getMediaMixingManager(): TRTCMediaMixingManager;
2159
+ /**
2160
+ * 获取互动白板管理器
2161
+ * @returns {TRTCWhiteboardManager}
2162
+ */
2163
+ getWhiteboardManager(): TRTCWhiteboardManager;
2043
2164
  getAITranscriberManager(): AITranscriberManager;
2044
2165
  }
2045
2166
 
2046
- export { AITranscriberListener, AudioMuteType, IAITranscriberManager, ITRTCMediaMixingEvent, ITRTCMediaMixingManager, InteractionOption, Rect, TRTCAppScene, TRTCAudioQuality, TRTCAudioSceneEx, TRTCBeautyStyle, TRTCCameraCaptureMode, TRTCCameraCaptureParams, TRTCDeviceInfo, TRTCDeviceState, TRTCDeviceType, TRTCImageBuffer, TRTCLocalStatistics, TRTCLogLevel, TRTCMediaMixingEncParam, TRTCMediaMixingErrorCode, TRTCMediaMixingEvent, TRTCMediaSource, TRTCMediaSourceType, TRTCMixInputType, TRTCMixUser, TRTCNetworkQosParam, TRTCParams, TRTCPublishCDNParam, TRTCQosControlMode, TRTCQuality, TRTCQualityInfo, TRTCRemoteStatistics, TRTCRenderParams, TRTCRoleType, TRTCScreenCaptureProperty, TRTCScreenCaptureSourceInfo, TRTCScreenCaptureSourceType, TRTCStatistics, TRTCTranscodingConfig, TRTCTranscodingConfigMode, TRTCVideoEncParam, TRTCVideoFillMode, TRTCVideoMirrorType, TRTCVideoQosPreference, TRTCVideoResolution, TRTCVideoResolutionMode, TRTCVideoRotation, TRTCVideoStreamType, TRTCVolumeInfo, TranscriberMessage, TranscriberParams, TRTC_Cloud as default };
2167
+ export { AITranscriberListener, AudioMuteType, IAITranscriberManager, ITRTCMediaMixingEvent, ITRTCMediaMixingManager, ITRTCWhiteboardManager, InteractionOption, Rect, TRTCAppScene, TRTCAudioQuality, TRTCAudioSceneEx, TRTCBeautyStyle, TRTCCameraCaptureMode, TRTCCameraCaptureParams, TRTCDeviceInfo, TRTCDeviceState, TRTCDeviceType, TRTCImageBuffer, TRTCLocalStatistics, TRTCLogLevel, TRTCMediaMixingEncParam, TRTCMediaMixingErrorCode, TRTCMediaMixingEvent, TRTCMediaSource, TRTCMediaSourceType, TRTCMixInputType, TRTCMixUser, TRTCNetworkQosParam, TRTCParams, TRTCPublishCDNParam, TRTCQosControlMode, TRTCQuality, TRTCQualityInfo, TRTCRemoteStatistics, TRTCRenderParams, TRTCRoleType, TRTCScreenCaptureProperty, TRTCScreenCaptureSourceInfo, TRTCScreenCaptureSourceType, TRTCStatistics, TRTCTranscodingConfig, TRTCTranscodingConfigMode, TRTCVideoEncParam, TRTCVideoFillMode, TRTCVideoMirrorType, TRTCVideoQosPreference, TRTCVideoResolution, TRTCVideoResolutionMode, TRTCVideoRotation, TRTCVideoStreamType, TRTCVolumeInfo, TRTCWhiteboardEvent, TranscriberMessage, TranscriberParams, WHITEBOARD_EXPERIMENTAL_EVENT_NAME, WhiteboardCanvasInfo, WhiteboardExperimentalEventPayload, WhiteboardOp, WhiteboardRecvCommand, WhiteboardToolConfig, WhiteboardToolType, TRTC_Cloud as default, loggerManager };