@zeewain/3d-avatar-sdk 2.1.2 → 2.1.3

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/dist/index.d.ts CHANGED
@@ -115,226 +115,6 @@ interface IUnityMessageSender<T extends string> {
115
115
  sendAsyncMessage(methodName: string, operation: T, parameter?: any): Promise<IUnityCallbackResponse>;
116
116
  }
117
117
 
118
- /**
119
- * @fileoverview 流式播报服务接口定义
120
- * @description 定义流式播报服务相关的类型、接口和枚举
121
- */
122
-
123
- /**
124
- * 播报操作类型枚举
125
- * @enum {string}
126
- * @description 定义播报服务支持的操作类型
127
- */
128
- declare enum BroadcastOperationType {
129
- START_BROADCAST = "startBroadcast",
130
- PAUSE_BROADCAST = "pauseBroadcast",
131
- RESUME_BROADCAST = "resumeBroadcast",
132
- STOP_BROADCAST = "stopBroadcast",
133
- APPEND_BROADCAST = "appendBroadcast"
134
- }
135
- /**
136
- * 播报类型枚举
137
- * @enum {string}
138
- * @description 定义播报的类型,支持文本转语音和自定义音频播报
139
- */
140
- declare enum BroadcastType {
141
- /** 文本智能体播报 */
142
- TEXT = "text",
143
- /** 自定义音频智能体播报 */
144
- AUDIO = "audio"
145
- }
146
- /**
147
- * 播报服务配置接口
148
- * @interface IBroadcastServiceConfig
149
- * @extends {IUnityServiceConfig}
150
- * @description 播报服务的配置选项
151
- */
152
- interface IBroadcastServiceConfig extends IUnityServiceConfig {
153
- /** 事件回调函数集合 */
154
- callbacks?: IBroadcastCallbacks;
155
- }
156
- /**
157
- * 播报参数接口
158
- * @interface IBroadcastParams
159
- * @description 定义播报操作所需的参数
160
- */
161
- interface IBroadcastParams {
162
- /** 播报类型 */
163
- type: BroadcastType;
164
- /** 数字人编码 */
165
- humanCode: string;
166
- /** 播报文本内容(文本播报时必填) */
167
- text?: string;
168
- /** 自定义音频URL(音频播报时必填) */
169
- audioUrl?: string;
170
- /** 音色编码(文本播报时必填) */
171
- voiceCode?: string;
172
- /** 播报速度,可选 */
173
- speed?: number;
174
- /** 播报音量(0-1) */
175
- volume: number;
176
- /** 是否显示字幕 */
177
- isSubtitle: boolean;
178
- /** 播报过程中才播放的动作集合,每个动作间隔2-3秒循环播放,播报顺序根据`motionPlayMode`参数处理,默认为`随机`,可选 */
179
- motionList?: string[];
180
- /** 动作播放模式,随机、顺序,随机=`random`,顺序=`sequence` */
181
- motionPlayMode?: 'random' | 'sequence';
182
- }
183
- /**
184
- * 流式响应接口
185
- * @interface IBroadcastResponse
186
- * @description 定义流式播报API的响应格式
187
- */
188
- interface IBroadcastResponse {
189
- /** 响应状态码,0表示成功 */
190
- code: number;
191
- /** 错误信息,可选 */
192
- message?: string;
193
- /** 响应数据 */
194
- data: {
195
- /** 音频文件URL,可选 */
196
- voiceUrl?: string;
197
- /** 任务ID,可选 */
198
- taskId?: string;
199
- /** 是否完成,可选 */
200
- done?: boolean;
201
- /** 口型数据URL,可选 */
202
- mouthShapeUrl?: string;
203
- /** 原始文本,可选 */
204
- originalText?: string;
205
- /** 字幕信息,可选 */
206
- subtitleInfo?: {
207
- /** 字幕列表 */
208
- subtitleList: Array<{
209
- /** 字幕索引 */
210
- index: number;
211
- /** 字幕文本 */
212
- text: string;
213
- /** 开始时间(毫秒) */
214
- startTime: number;
215
- /** 结束时间(毫秒) */
216
- endTime: number;
217
- }>;
218
- };
219
- };
220
- }
221
- /**
222
- * 播报回调接口
223
- * @interface IBroadcastCallbacks
224
- * @description 定义播报过程中的事件回调函数
225
- */
226
- interface IBroadcastCallbacks {
227
- /** 播报开始时触发 */
228
- onStart?: () => void;
229
- /** 播报完成时触发 */
230
- onFinish?: () => void;
231
- /** 播报出错时触发 */
232
- onError?: (error: Error) => void;
233
- /** 播报暂停时触发 */
234
- onPause?: () => void;
235
- /** 播报恢复时触发 */
236
- onResume?: () => void;
237
- /** 播报停止时触发 */
238
- onStop?: () => void;
239
- /** 播报中断时触发 */
240
- onAbort?: () => void;
241
- }
242
- /**
243
- * 播报API接口
244
- * @interface IBroadcastAPI
245
- * @description 定义播报服务的核心API接口
246
- */
247
- interface IBroadcastAPI {
248
- /**
249
- * 开始播报
250
- * @param params - 播报参数
251
- * @returns Promise<void> 播报操作的Promise
252
- */
253
- startBroadcast(params: IBroadcastParams): Promise<void>;
254
- /**
255
- * 暂停播报
256
- * @returns Promise<void> 暂停操作的Promise
257
- */
258
- pauseBroadcast(resetIdle?: boolean): Promise<void>;
259
- /**
260
- * 恢复播报
261
- * @returns Promise<void> 恢复操作的Promise
262
- */
263
- resumeBroadcast(): Promise<void>;
264
- /**
265
- * 停止播报
266
- * @returns Promise<void> 停止操作的Promise
267
- */
268
- stopBroadcast(): Promise<void>;
269
- /**
270
- * 更新回调函数
271
- * @param callbacks - 新的回调函数集合
272
- */
273
- updateCallbacks(callbacks: IBroadcastCallbacks): void;
274
- /**
275
- * 获取当前播报状态
276
- * @returns object 返回当前播报状态信息
277
- */
278
- getStatus(): {
279
- isActive: boolean;
280
- isGeneratingAudio: boolean;
281
- hasReceivedAudio: boolean;
282
- queueInfo?: {
283
- totalTasks: number;
284
- requestingTasks: number;
285
- completedTasks: number;
286
- failedTasks: number;
287
- totalPendingResponses: number;
288
- currentSendingSequence: number;
289
- };
290
- };
291
- /**
292
- * 销毁播报服务
293
- */
294
- destroy(): void;
295
- }
296
-
297
- /**
298
- * @fileoverview SDK配置接口定义
299
- * @description 定义SDK实例初始化所需的配置参数
300
- */
301
-
302
- /**
303
- * SDK配置接口
304
- * @interface IAvatarSDKConfig
305
- * @description 定义SDK实例初始化所需的配置参数
306
- */
307
- interface IAvatarSDKConfig {
308
- /** 全局用户认证令牌 */
309
- token?: string;
310
- /** 运行环境 */
311
- env?: 'dev' | 'test' | 'prod' | 'custom';
312
- /** api接口地址,仅当env为custom时有效 */
313
- apiUrl?: string;
314
- /** 资源文件地址(父级路径),从平台下载的资源文件所解压出来的目录 */
315
- assetsUrl: string;
316
- /** Unity加载器脚本URL */
317
- loaderUrl: string;
318
- /** Unity数据文件URL */
319
- dataUrl: string;
320
- /** Unity框架文件URL */
321
- frameworkUrl: string;
322
- /** Unity代码文件URL */
323
- codeUrl: string;
324
- /** 容器DOM元素ID,可选,默认为'unity-container' */
325
- containerId?: string;
326
- /** 待机动作编码列表,随机播放(排重方式)可选 */
327
- idleMotionList?: string[];
328
- /** 3D渲染引擎加载进度回调函数,可选 */
329
- onProgress?: (progress: number) => void;
330
- /** 播报回调函数,可选 */
331
- broadcastCallbacks?: IBroadcastCallbacks;
332
- /** 是否启用调试日志,默认为false */
333
- enableDebugLog?: boolean;
334
- /** 内部 WEBGL 版本 */
335
- audioDrivenVersion?: string;
336
- }
337
-
338
118
  /**
339
119
  * @fileoverview Avatar API接口定义
340
120
  * @description 定义数字人控制API的核心接口、类型和枚举
@@ -426,178 +206,24 @@ interface IAvatarAPI {
426
206
  }
427
207
 
428
208
  /**
429
- * @fileoverview 统一的3D数字人SDK入口类
430
- * @description 提供统一的SDK接口,内部通过组合模式调用各个服务模块
209
+ * Unity服务日志记录器接口
210
+ * @interface ISimpleLogger
211
+ * @description 统一的日志记录接口
431
212
  */
213
+ interface ISimpleLogger {
214
+ /** 记录调试信息 */
215
+ debug(message: string, data?: any): void;
216
+ /** 记录一般信息 */
217
+ info(message: string, data?: any): void;
218
+ /** 记录警告信息 */
219
+ warn(message: string, data?: any): void;
220
+ /** 记录错误信息 */
221
+ error(message: string, error?: Error, data?: any): void;
222
+ }
432
223
 
433
224
  /**
434
- * 统一的3D数字人SDK类
435
- * @class ZEEAvatarSDK
436
- * @description 提供统一的SDK接口,简化用户使用体验,支持多实例
437
- */
438
- declare class ZEEAvatarSDK {
439
- /** SDK唯一标识符 */
440
- private readonly instanceId;
441
- /** Unity加载器实例 */
442
- private loader;
443
- /** Avatar服务实例 */
444
- private avatarService;
445
- /** 播报服务实例 */
446
- private broadcastService;
447
- /** Unity实例 */
448
- private unityInstance;
449
- /** SDK初始化状态 */
450
- private isInitialized;
451
- /** SDK日志 */
452
- private readonly logger;
453
- /**
454
- * 构造函数
455
- * @param config SDK配置对象
456
- */
457
- constructor(config: IAvatarSDKConfig);
458
- /**
459
- * 初始化数字人
460
- * @param avatarCode 数字人编码
461
- * @param cameraType 摄像机类型
462
- * @returns Promise<IAvatarCallbackResponse> 初始化结果
463
- * @description 统一的初始化方法,包含Unity实例初始化和数字人加载
464
- */
465
- initializeAvatar(avatarCode: string, cameraType?: AvatarCameraType): Promise<IAvatarCallbackResponse>;
466
- /**
467
- * 更新Token
468
- * @param token 新的认证Token
469
- * @description 更新全局Token配置
470
- */
471
- updateToken(token: string): void;
472
- /**
473
- * 播放数字人动作
474
- * @param clipCode 动作编码
475
- * @returns Promise<IAvatarCallbackResponse> 播放结果
476
- */
477
- playMotion(clipCode: string): Promise<IAvatarCallbackResponse>;
478
- /**
479
- * 获取当前播放的动作信息
480
- * @param getRemainingTime 是否获取剩余时间
481
- * @returns Promise<IAvatarCallbackResponse> 动作信息
482
- */
483
- getCurrentMotion(getRemainingTime?: boolean): Promise<IAvatarCallbackResponse>;
484
- /**
485
- * 卸载数字人
486
- * @returns Promise<IAvatarCallbackResponse> 卸载结果
487
- */
488
- unloadAvatar(): Promise<IAvatarCallbackResponse>;
489
- /**
490
- * 设置摄像机类型
491
- * @param cameraType 摄像机类型
492
- * @returns Promise<IAvatarCallbackResponse> 设置结果
493
- */
494
- setCamera(cameraType: AvatarCameraType): Promise<IAvatarCallbackResponse>;
495
- /**
496
- * 开始播报
497
- * @param params 播报参数
498
- * @param isAppend 是否追加播报
499
- * @returns Promise<void> 播报操作的Promise
500
- */
501
- startBroadcast(params: IBroadcastParams, isAppend?: boolean): Promise<void>;
502
- /**
503
- * 暂停播报
504
- * @param resetIdle 是否重置空闲状态
505
- * @returns Promise<void> 暂停操作的Promise
506
- */
507
- pauseBroadcast(resetIdle?: boolean): Promise<void>;
508
- /**
509
- * 恢复播报
510
- * @returns Promise<void> 恢复操作的Promise
511
- */
512
- resumeBroadcast(): Promise<void>;
513
- /**
514
- * 停止播报
515
- * @returns Promise<void> 停止操作的Promise
516
- */
517
- stopBroadcast(): Promise<void>;
518
- /**
519
- * 更新播报回调函数
520
- * @param callbacks 新的回调函数集合
521
- */
522
- updateBroadcastCallbacks(callbacks: IBroadcastCallbacks): void;
523
- /**
524
- * 获取播报状态
525
- * @returns 播报状态信息
526
- */
527
- getBroadcastStatus(): {
528
- isActive: boolean;
529
- isGeneratingAudio: boolean;
530
- hasReceivedAudio: boolean;
531
- queueInfo?: {
532
- totalTasks: number;
533
- requestingTasks: number;
534
- completedTasks: number;
535
- failedTasks: number;
536
- totalPendingResponses: number;
537
- currentSendingSequence: number;
538
- };
539
- };
540
- /**
541
- * 销毁SDK实例
542
- * @description 清理所有资源,包括Unity实例和服务
543
- */
544
- destroy(): void;
545
- /**
546
- * 获取SDK实例唯一标识符
547
- * @returns string 实例ID
548
- */
549
- getInstanceId(): string;
550
- /**
551
- * 获取SDK初始化状态
552
- * @returns boolean 是否已初始化
553
- */
554
- isSDKInitialized(): boolean;
555
- /**
556
- * 获取Avatar加载状态
557
- * @returns boolean 是否已加载Avatar
558
- */
559
- isAvatarInitialized(): boolean;
560
- /**
561
- * 获取SDK配置
562
- * @returns IAvatarSDKConfig 当前配置
563
- */
564
- getConfig(): IAvatarSDKConfig | null;
565
- /**
566
- * 确保SDK已初始化
567
- * @private
568
- */
569
- private ensureInitialized;
570
- }
571
-
572
- /**
573
- * @fileoverview SDK 版本号常量
574
- * @description 此文件由构建脚本自动生成,请勿手动修改
575
- */
576
- /**
577
- * SDK 版本号
578
- * @const {string} SDK_VERSION
579
- */
580
- declare const SDK_VERSION = "2.1.2";
581
-
582
- /**
583
- * Unity服务日志记录器接口
584
- * @interface ISimpleLogger
585
- * @description 统一的日志记录接口
586
- */
587
- interface ISimpleLogger {
588
- /** 记录调试信息 */
589
- debug(message: string, data?: any): void;
590
- /** 记录一般信息 */
591
- info(message: string, data?: any): void;
592
- /** 记录警告信息 */
593
- warn(message: string, data?: any): void;
594
- /** 记录错误信息 */
595
- error(message: string, error?: Error, data?: any): void;
596
- }
597
-
598
- /**
599
- * @fileoverview Unity服务抽象基类
600
- * @description 提供Unity服务的通用基础实现,包括回调管理、消息发送、错误处理等功能
225
+ * @fileoverview Unity服务抽象基类
226
+ * @description 提供Unity服务的通用基础实现,包括回调管理、消息发送、错误处理等功能
601
227
  */
602
228
 
603
229
  /**
@@ -976,6 +602,7 @@ declare class BroadcastService extends UnityBaseService<BroadcastOperationType>
976
602
  hasReceivedAudio: boolean;
977
603
  queueInfo?: {
978
604
  totalTasks: number;
605
+ pendingTasks: number;
979
606
  requestingTasks: number;
980
607
  completedTasks: number;
981
608
  failedTasks: number;
@@ -999,22 +626,22 @@ declare class BroadcastService extends UnityBaseService<BroadcastOperationType>
999
626
  /**
1000
627
  * 添加任务到队列
1001
628
  * @param task - 播报任务
1002
- * @description 将任务添加到队列并立即开始请求
629
+ * @description 将任务添加到队列,只有当没有正在请求的任务时才开始请求(串行请求模式)
1003
630
  * @private
1004
631
  */
1005
632
  private addTaskToQueue;
1006
633
  /**
1007
634
  * 处理队列
1008
- * @description 处理队列中的任务,发起请求生成音频
635
+ * @description 处理队列中的任务响应,按序号发送给unity播放
1009
636
  * @private
1010
637
  */
1011
- private processQueue;
638
+ private processTaskQueue;
1012
639
  /**
1013
640
  * 队列处理步骤
1014
- * @description 处理队列中的单个步骤,包括发起请求和发送音频
641
+ * @description 处理队列中的单个步骤,按序号发送给unity播放
1015
642
  * @private
1016
643
  */
1017
- private processQueueStep;
644
+ private processTaskQueueStep;
1018
645
  /**
1019
646
  * 开始任务请求
1020
647
  * @param task - 播报任务
@@ -1031,16 +658,16 @@ declare class BroadcastService extends UnityBaseService<BroadcastOperationType>
1031
658
  */
1032
659
  private handleTaskResponse;
1033
660
  /**
1034
- * 发送下一个响应
661
+ * 发送下一个响应给unity播放
1035
662
  * @param task - 播报任务
1036
- * @description 发送任务中的第一个待发送响应到Unity,发送后立即删除
663
+ * @description 发送任务的响应数组中的第一个待发送响应到Unity(按顺序发送),发送后立即删除
1037
664
  * @private
1038
665
  */
1039
666
  private sendNextResponse;
1040
667
  /**
1041
668
  * 处理任务关闭
1042
669
  * @param task - 播报任务
1043
- * @description 处理任务的流式连接关闭
670
+ * @description 处理任务的流式连接关闭,并启动下一个待处理任务的请求
1044
671
  * @private
1045
672
  */
1046
673
  private handleTaskClose;
@@ -1048,7 +675,7 @@ declare class BroadcastService extends UnityBaseService<BroadcastOperationType>
1048
675
  * 处理任务错误
1049
676
  * @param task - 播报任务
1050
677
  * @param error - 错误对象
1051
- * @description 处理任务执行过程中的错误,防止重复触发错误回调
678
+ * @description 处理任务执行过程中的错误,防止重复触发错误回调,并启动下一个待处理任务
1052
679
  * @private
1053
680
  */
1054
681
  private handleTaskError;
@@ -1093,10 +720,17 @@ declare class BroadcastService extends UnityBaseService<BroadcastOperationType>
1093
720
  /**
1094
721
  * 处理播报错误
1095
722
  * @param errorCode - 错误码
723
+ * @param errorMessage - 错误消息
1096
724
  * @description 处理播报过程中的错误
1097
725
  * @private
1098
726
  */
1099
727
  private handleBroadcastError;
728
+ /**
729
+ * 启动下一个待处理任务的请求
730
+ * @description 在当前任务请求完成或失败后,检查并启动下一个待处理任务
731
+ * @private
732
+ */
733
+ private startNextPendingTask;
1100
734
  /**
1101
735
  * 清理队列处理定时器
1102
736
  * @description 清理队列处理定时器
@@ -1423,5 +1057,382 @@ declare class ZEEAvatarLoader {
1423
1057
  protected initGlobalConfig(): void;
1424
1058
  }
1425
1059
 
1060
+ /**
1061
+ * @fileoverview 流式播报服务接口定义
1062
+ * @description 定义流式播报服务相关的类型、接口和枚举
1063
+ */
1064
+
1065
+ /**
1066
+ * 播报操作类型枚举
1067
+ * @enum {string}
1068
+ * @description 定义播报服务支持的操作类型
1069
+ */
1070
+ declare enum BroadcastOperationType {
1071
+ START_BROADCAST = "startBroadcast",
1072
+ PAUSE_BROADCAST = "pauseBroadcast",
1073
+ RESUME_BROADCAST = "resumeBroadcast",
1074
+ STOP_BROADCAST = "stopBroadcast",
1075
+ APPEND_BROADCAST = "appendBroadcast"
1076
+ }
1077
+ /**
1078
+ * 播报类型枚举
1079
+ * @enum {string}
1080
+ * @description 定义播报的类型,支持文本转语音和自定义音频播报
1081
+ */
1082
+ declare enum BroadcastType {
1083
+ /** 文本智能体播报 */
1084
+ TEXT = "text",
1085
+ /** 自定义音频智能体播报 */
1086
+ AUDIO = "audio"
1087
+ }
1088
+ /**
1089
+ * 播报服务配置接口
1090
+ * @interface IBroadcastServiceConfig
1091
+ * @extends {IUnityServiceConfig}
1092
+ * @description 播报服务的配置选项
1093
+ */
1094
+ interface IBroadcastServiceConfig extends IUnityServiceConfig {
1095
+ /** 事件回调函数集合 */
1096
+ callbacks?: IBroadcastCallbacks;
1097
+ }
1098
+ /**
1099
+ * 播报参数接口
1100
+ * @interface IBroadcastParams
1101
+ * @description 定义播报操作所需的参数
1102
+ */
1103
+ interface IBroadcastParams {
1104
+ /** 播报类型 */
1105
+ type: BroadcastType;
1106
+ /** 数字人编码 */
1107
+ humanCode: string;
1108
+ /** 播报文本内容(文本播报时必填) */
1109
+ text?: string;
1110
+ /** 自定义音频URL(音频播报时必填) */
1111
+ audioUrl?: string;
1112
+ /** 音色编码(文本播报时必填) */
1113
+ voiceCode?: string;
1114
+ /** 播报速度,可选 */
1115
+ speed?: number;
1116
+ /** 播报音量(0-1) */
1117
+ volume: number;
1118
+ /** 是否显示字幕 */
1119
+ isSubtitle: boolean;
1120
+ /** 播报过程中才播放的动作集合,每个动作间隔2-3秒循环播放,播报顺序根据`motionPlayMode`参数处理,默认为`随机`,可选 */
1121
+ motionList?: string[];
1122
+ /** 动作播放模式,随机、顺序,随机=`random`,顺序=`sequence` */
1123
+ motionPlayMode?: 'random' | 'sequence';
1124
+ }
1125
+ /**
1126
+ * 流式响应接口
1127
+ * @interface IBroadcastResponse
1128
+ * @description 定义流式播报API的响应格式
1129
+ */
1130
+ interface IBroadcastResponse {
1131
+ /** 响应状态码,0表示成功 */
1132
+ code: number;
1133
+ /** 错误信息,可选 */
1134
+ message?: string;
1135
+ /** 响应数据 */
1136
+ data: {
1137
+ /** 音频文件URL,可选 */
1138
+ voiceUrl?: string;
1139
+ /** 任务ID,可选 */
1140
+ taskId?: string;
1141
+ /** 是否完成,可选 */
1142
+ done?: boolean;
1143
+ /** 口型数据URL,可选 */
1144
+ mouthShapeUrl?: string;
1145
+ /** 原始文本,可选 */
1146
+ originalText?: string;
1147
+ /** 字幕信息,可选 */
1148
+ subtitleInfo?: {
1149
+ /** 字幕列表 */
1150
+ subtitleList: Array<{
1151
+ /** 字幕索引 */
1152
+ index: number;
1153
+ /** 字幕文本 */
1154
+ text: string;
1155
+ /** 开始时间(毫秒) */
1156
+ startTime: number;
1157
+ /** 结束时间(毫秒) */
1158
+ endTime: number;
1159
+ }>;
1160
+ };
1161
+ };
1162
+ }
1163
+ /**
1164
+ * 播报回调接口
1165
+ * @interface IBroadcastCallbacks
1166
+ * @description 定义播报过程中的事件回调函数
1167
+ */
1168
+ interface IBroadcastCallbacks {
1169
+ /** 播报开始时触发 */
1170
+ onStart?: () => void;
1171
+ /** 播报完成时触发 */
1172
+ onFinish?: () => void;
1173
+ /** 播报出错时触发 */
1174
+ onError?: (error: SDKError) => void;
1175
+ /** 播报暂停时触发 */
1176
+ onPause?: () => void;
1177
+ /** 播报恢复时触发 */
1178
+ onResume?: () => void;
1179
+ /** 播报停止时触发 */
1180
+ onStop?: () => void;
1181
+ /** 播报中断时触发 */
1182
+ onAbort?: () => void;
1183
+ }
1184
+ /**
1185
+ * 播报API接口
1186
+ * @interface IBroadcastAPI
1187
+ * @description 定义播报服务的核心API接口
1188
+ */
1189
+ interface IBroadcastAPI {
1190
+ /**
1191
+ * 开始播报
1192
+ * @param params - 播报参数
1193
+ * @returns Promise<void> 播报操作的Promise
1194
+ */
1195
+ startBroadcast(params: IBroadcastParams): Promise<void>;
1196
+ /**
1197
+ * 暂停播报
1198
+ * @returns Promise<void> 暂停操作的Promise
1199
+ */
1200
+ pauseBroadcast(resetIdle?: boolean): Promise<void>;
1201
+ /**
1202
+ * 恢复播报
1203
+ * @returns Promise<void> 恢复操作的Promise
1204
+ */
1205
+ resumeBroadcast(): Promise<void>;
1206
+ /**
1207
+ * 停止播报
1208
+ * @returns Promise<void> 停止操作的Promise
1209
+ */
1210
+ stopBroadcast(): Promise<void>;
1211
+ /**
1212
+ * 更新回调函数
1213
+ * @param callbacks - 新的回调函数集合
1214
+ */
1215
+ updateCallbacks(callbacks: IBroadcastCallbacks): void;
1216
+ /**
1217
+ * 获取当前播报状态
1218
+ * @returns object 返回当前播报状态信息
1219
+ */
1220
+ getStatus(): {
1221
+ isActive: boolean;
1222
+ isGeneratingAudio: boolean;
1223
+ hasReceivedAudio: boolean;
1224
+ queueInfo?: {
1225
+ totalTasks: number;
1226
+ requestingTasks: number;
1227
+ completedTasks: number;
1228
+ failedTasks: number;
1229
+ totalPendingResponses: number;
1230
+ currentSendingSequence: number;
1231
+ };
1232
+ };
1233
+ /**
1234
+ * 销毁播报服务
1235
+ */
1236
+ destroy(): void;
1237
+ }
1238
+
1239
+ /**
1240
+ * @fileoverview SDK配置接口定义
1241
+ * @description 定义SDK实例初始化所需的配置参数
1242
+ */
1243
+
1244
+ /**
1245
+ * SDK配置接口
1246
+ * @interface IAvatarSDKConfig
1247
+ * @description 定义SDK实例初始化所需的配置参数
1248
+ */
1249
+ interface IAvatarSDKConfig {
1250
+ /** 全局用户认证令牌 */
1251
+ token?: string;
1252
+ /** 运行环境 */
1253
+ env?: 'dev' | 'test' | 'prod' | 'custom';
1254
+ /** api接口地址,仅当env为custom时有效 */
1255
+ apiUrl?: string;
1256
+ /** 资源文件地址(父级路径),从平台下载的资源文件所解压出来的目录 */
1257
+ assetsUrl: string;
1258
+ /** Unity加载器脚本URL */
1259
+ loaderUrl: string;
1260
+ /** Unity数据文件URL */
1261
+ dataUrl: string;
1262
+ /** Unity框架文件URL */
1263
+ frameworkUrl: string;
1264
+ /** Unity代码文件URL */
1265
+ codeUrl: string;
1266
+ /** 容器DOM元素ID,可选,默认为'unity-container' */
1267
+ containerId?: string;
1268
+ /** 待机动作编码列表,随机播放(排重方式)可选 */
1269
+ idleMotionList?: string[];
1270
+ /** 3D渲染引擎加载进度回调函数,可选 */
1271
+ onProgress?: (progress: number) => void;
1272
+ /** 播报回调函数,可选 */
1273
+ broadcastCallbacks?: IBroadcastCallbacks;
1274
+ /** 是否启用调试日志,默认为false */
1275
+ enableDebugLog?: boolean;
1276
+ /** 内部 WEBGL 版本 */
1277
+ audioDrivenVersion?: string;
1278
+ /** 操作超时时间(毫秒),默认为30000 */
1279
+ operationTimeout?: number;
1280
+ }
1281
+
1282
+ /**
1283
+ * @fileoverview 统一的3D数字人SDK入口类
1284
+ * @description 提供统一的SDK接口,内部通过组合模式调用各个服务模块
1285
+ */
1286
+
1287
+ /**
1288
+ * 统一的3D数字人SDK类
1289
+ * @class ZEEAvatarSDK
1290
+ * @description 提供统一的SDK接口,简化用户使用体验,支持多实例
1291
+ */
1292
+ declare class ZEEAvatarSDK {
1293
+ /** SDK唯一标识符 */
1294
+ private readonly instanceId;
1295
+ /** Unity加载器实例 */
1296
+ private loader;
1297
+ /** Avatar服务实例 */
1298
+ private avatarService;
1299
+ /** 播报服务实例 */
1300
+ private broadcastService;
1301
+ /** Unity实例 */
1302
+ private unityInstance;
1303
+ /** SDK初始化状态 */
1304
+ private isInitialized;
1305
+ /** SDK日志 */
1306
+ private readonly logger;
1307
+ /**
1308
+ * 构造函数
1309
+ * @param config SDK配置对象
1310
+ */
1311
+ constructor(config: IAvatarSDKConfig);
1312
+ /**
1313
+ * 初始化数字人
1314
+ * @param avatarCode 数字人编码
1315
+ * @param cameraType 摄像机类型
1316
+ * @returns Promise<IAvatarCallbackResponse> 初始化结果
1317
+ * @description 统一的初始化方法,包含Unity实例初始化和数字人加载
1318
+ */
1319
+ initializeAvatar(avatarCode: string, cameraType?: AvatarCameraType): Promise<IAvatarCallbackResponse>;
1320
+ /**
1321
+ * 更新Token
1322
+ * @param token 新的认证Token
1323
+ * @description 更新全局Token配置
1324
+ */
1325
+ updateToken(token: string): void;
1326
+ /**
1327
+ * 播放数字人动作
1328
+ * @param clipCode 动作编码
1329
+ * @returns Promise<IAvatarCallbackResponse> 播放结果
1330
+ */
1331
+ playMotion(clipCode: string): Promise<IAvatarCallbackResponse>;
1332
+ /**
1333
+ * 获取当前播放的动作信息
1334
+ * @param getRemainingTime 是否获取剩余时间
1335
+ * @returns Promise<IAvatarCallbackResponse> 动作信息
1336
+ */
1337
+ getCurrentMotion(getRemainingTime?: boolean): Promise<IAvatarCallbackResponse>;
1338
+ /**
1339
+ * 卸载数字人
1340
+ * @returns Promise<IAvatarCallbackResponse> 卸载结果
1341
+ */
1342
+ unloadAvatar(): Promise<IAvatarCallbackResponse>;
1343
+ /**
1344
+ * 设置摄像机类型
1345
+ * @param cameraType 摄像机类型
1346
+ * @returns Promise<IAvatarCallbackResponse> 设置结果
1347
+ */
1348
+ setCamera(cameraType: AvatarCameraType): Promise<IAvatarCallbackResponse>;
1349
+ /**
1350
+ * 开始播报
1351
+ * @param params 播报参数
1352
+ * @param isAppend 是否追加播报
1353
+ * @returns Promise<void> 播报操作的Promise
1354
+ */
1355
+ startBroadcast(params: IBroadcastParams, isAppend?: boolean): Promise<void>;
1356
+ /**
1357
+ * 暂停播报
1358
+ * @param resetIdle 是否重置空闲状态
1359
+ * @returns Promise<void> 暂停操作的Promise
1360
+ */
1361
+ pauseBroadcast(resetIdle?: boolean): Promise<void>;
1362
+ /**
1363
+ * 恢复播报
1364
+ * @returns Promise<void> 恢复操作的Promise
1365
+ */
1366
+ resumeBroadcast(): Promise<void>;
1367
+ /**
1368
+ * 停止播报
1369
+ * @returns Promise<void> 停止操作的Promise
1370
+ */
1371
+ stopBroadcast(): Promise<void>;
1372
+ /**
1373
+ * 更新播报回调函数
1374
+ * @param callbacks 新的回调函数集合
1375
+ */
1376
+ updateBroadcastCallbacks(callbacks: IBroadcastCallbacks): void;
1377
+ /**
1378
+ * 获取播报状态
1379
+ * @returns 播报状态信息
1380
+ */
1381
+ getBroadcastStatus(): {
1382
+ isActive: boolean;
1383
+ isGeneratingAudio: boolean;
1384
+ hasReceivedAudio: boolean;
1385
+ queueInfo?: {
1386
+ totalTasks: number;
1387
+ pendingTasks: number;
1388
+ requestingTasks: number;
1389
+ completedTasks: number;
1390
+ failedTasks: number;
1391
+ totalPendingResponses: number;
1392
+ currentSendingSequence: number;
1393
+ };
1394
+ };
1395
+ /**
1396
+ * 销毁SDK实例
1397
+ * @description 清理所有资源,包括Unity实例和服务
1398
+ */
1399
+ destroy(): void;
1400
+ /**
1401
+ * 获取SDK实例唯一标识符
1402
+ * @returns string 实例ID
1403
+ */
1404
+ getInstanceId(): string;
1405
+ /**
1406
+ * 获取SDK初始化状态
1407
+ * @returns boolean 是否已初始化
1408
+ */
1409
+ isSDKInitialized(): boolean;
1410
+ /**
1411
+ * 获取Avatar加载状态
1412
+ * @returns boolean 是否已加载Avatar
1413
+ */
1414
+ isAvatarInitialized(): boolean;
1415
+ /**
1416
+ * 获取SDK配置
1417
+ * @returns IAvatarSDKConfig 当前配置
1418
+ */
1419
+ getConfig(): IAvatarSDKConfig | null;
1420
+ /**
1421
+ * 确保SDK已初始化
1422
+ * @private
1423
+ */
1424
+ private ensureInitialized;
1425
+ }
1426
+
1427
+ /**
1428
+ * @fileoverview SDK 版本号常量
1429
+ * @description 此文件由构建脚本自动生成,请勿手动修改
1430
+ */
1431
+ /**
1432
+ * SDK 版本号
1433
+ * @const {string} SDK_VERSION
1434
+ */
1435
+ declare const SDK_VERSION = "2.1.3";
1436
+
1426
1437
  export { AvatarCameraType, AvatarOperationType, AvatarService, BroadcastOperationType, BroadcastService, BroadcastType, ConfigErrorCode, ERROR_CODE_MAP, ErrorCategory, NetworkErrorCode, OperationErrorCode, ResourceErrorCode, SDKError, SDK_VERSION, SystemErrorCode, UnityOperationStatus, ZEEAvatarLoader, ZEEAvatarSDK, getErrorInfo };
1427
1438
  export type { IAvatarAPI, IAvatarCallbackResponse, IAvatarSDKConfig, IBroadcastAPI, IBroadcastCallbacks, IBroadcastParams, IBroadcastResponse, IBroadcastServiceConfig, IUnityCallbackManager, IUnityCallbackResponse, IUnityInstance, IUnityMessageSender, IUnityServiceConfig, SDKErrorCode, TOperationType };