@spatialwalk/avatarkit 1.0.0-beta.3 → 1.0.0-beta.4

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 (45) hide show
  1. package/CHANGELOG.md +120 -0
  2. package/README.md +306 -36
  3. package/dist/{StreamingAudioPlayer-BeLlDiwE.js → StreamingAudioPlayer-L87IFoao.js} +89 -58
  4. package/dist/StreamingAudioPlayer-L87IFoao.js.map +1 -0
  5. package/dist/animation/AnimationWebSocketClient.d.ts.map +1 -1
  6. package/dist/audio/AnimationPlayer.d.ts +4 -0
  7. package/dist/audio/AnimationPlayer.d.ts.map +1 -1
  8. package/dist/audio/StreamingAudioPlayer.d.ts +10 -0
  9. package/dist/audio/StreamingAudioPlayer.d.ts.map +1 -1
  10. package/dist/avatar_core_wasm-D4eEi7Eh.js +1666 -0
  11. package/dist/{avatar_core_wasm-DmkU6dYn.js.map → avatar_core_wasm-D4eEi7Eh.js.map} +1 -1
  12. package/dist/avatar_core_wasm.wasm +0 -0
  13. package/dist/config/app-config.d.ts +3 -7
  14. package/dist/config/app-config.d.ts.map +1 -1
  15. package/dist/config/constants.d.ts +19 -3
  16. package/dist/config/constants.d.ts.map +1 -1
  17. package/dist/core/AvatarController.d.ts +91 -64
  18. package/dist/core/AvatarController.d.ts.map +1 -1
  19. package/dist/core/AvatarDownloader.d.ts.map +1 -1
  20. package/dist/core/AvatarKit.d.ts +6 -0
  21. package/dist/core/AvatarKit.d.ts.map +1 -1
  22. package/dist/core/AvatarManager.d.ts.map +1 -1
  23. package/dist/core/AvatarView.d.ts +28 -30
  24. package/dist/core/AvatarView.d.ts.map +1 -1
  25. package/dist/core/NetworkLayer.d.ts +59 -0
  26. package/dist/core/NetworkLayer.d.ts.map +1 -0
  27. package/dist/index-BDxVrKwm.js +5942 -0
  28. package/dist/index-BDxVrKwm.js.map +1 -0
  29. package/dist/index.d.ts.map +1 -1
  30. package/dist/index.js +12 -11
  31. package/dist/renderer/RenderSystem.d.ts +4 -2
  32. package/dist/renderer/RenderSystem.d.ts.map +1 -1
  33. package/dist/types/index.d.ts +18 -0
  34. package/dist/types/index.d.ts.map +1 -1
  35. package/dist/utils/cls-tracker.d.ts +17 -0
  36. package/dist/utils/cls-tracker.d.ts.map +1 -0
  37. package/dist/utils/logger.d.ts +1 -1
  38. package/dist/utils/logger.d.ts.map +1 -1
  39. package/package.json +8 -4
  40. package/dist/StreamingAudioPlayer-BeLlDiwE.js.map +0 -1
  41. package/dist/avatar_core_wasm-DmkU6dYn.js +0 -1666
  42. package/dist/index-NmYXWJnL.js +0 -9712
  43. package/dist/index-NmYXWJnL.js.map +0 -1
  44. package/dist/utils/posthog-tracker.d.ts +0 -82
  45. package/dist/utils/posthog-tracker.d.ts.map +0 -1
Binary file
@@ -2,19 +2,12 @@ export declare const APP_CONFIG: {
2
2
  testEnv: boolean;
3
3
  readonly debug: boolean;
4
4
  rendering: {
5
- backgroundColor: [number, number, number, number];
6
5
  /**
7
6
  * 排序模式
8
7
  * - 'balance': 性能优先,首帧排序后复用(默认)
9
8
  * - 'quality': 质量优先,每帧重新排序
10
9
  */
11
10
  sortMode: "balance" | "quality";
12
- /**
13
- * 背景显示模式
14
- * - 'cover': 保持宽高比,覆盖整个画布(默认)
15
- * - 'stretch': 拉伸填充整个画布
16
- */
17
- backgroundMode: "cover" | "stretch";
18
11
  };
19
12
  camera: {
20
13
  position: [number, number, number];
@@ -26,6 +19,9 @@ export declare const APP_CONFIG: {
26
19
  animation: {
27
20
  fps: number;
28
21
  };
22
+ audio: {
23
+ sampleRate: number;
24
+ };
29
25
  avatar: {
30
26
  baseAssetsPath: string;
31
27
  wasmPath: string;
@@ -1 +1 @@
1
- {"version":3,"file":"app-config.d.ts","sourceRoot":"","sources":["../../config/app-config.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,UAAU;;;;yBAQc,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;QAEjE;;;;WAIG;kBACoB,SAAS,GAAG,SAAS;QAE5C;;;;WAIG;wBACwB,OAAO,GAAG,SAAS;;;kBAIZ,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;gBACrC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;;;;;;;;;;;;;;;;;;;;;;kBA4BxB,OAAO,GAAG,SAAS;;;;CAI3C,CAAA"}
1
+ {"version":3,"file":"app-config.d.ts","sourceRoot":"","sources":["../../config/app-config.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,UAAU;;;;QAQnB;;;;WAIG;kBACoB,SAAS,GAAG,SAAS;;;kBAIV,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;gBACrC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;kBAgCxB,OAAO,GAAG,SAAS;;;;CAI3C,CAAA"}
@@ -1,6 +1,22 @@
1
- export declare const POSTHOG_HOST = "https://i.spatialwalk.ai";
2
- export declare const POSTHOG_API_KEY = "phc_TjwCYlnJCUMGPYAKePPxoRrCdMGsN8AQqprhWhCIShe";
3
- export declare const POSTHOG_TRACK_EVENTS: boolean;
1
+ import { Environment } from '../types';
2
+ export declare const CLS_TRACK_EVENTS: boolean;
3
+ /**
4
+ * 获取 CLS 配置(需要传入环境)
5
+ */
6
+ export declare function getCLSConfig(environment: Environment): {
7
+ endpoint: string;
8
+ topicId: string;
9
+ secretId: string;
10
+ secretKey: string;
11
+ token: string;
12
+ };
13
+ export declare const CLS_CONFIG: {
14
+ endpoint: string;
15
+ topicId: string;
16
+ secretId: string;
17
+ secretKey: string;
18
+ token: string;
19
+ };
4
20
  export declare const ENV_TEST: boolean;
5
21
  /**
6
22
  * Comprehensive debug mode check
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../config/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,6BAA6B,CAAA;AACtD,eAAO,MAAM,eAAe,oDAAoD,CAAA;AAChF,eAAO,MAAM,oBAAoB,SAAuD,CAAA;AACxF,eAAO,MAAM,QAAQ,SAAsG,CAAA;AAa3H;;;;;;GAMG;AACH,wBAAgB,WAAW,IAAI,OAAO,CAErC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../config/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAGtC,eAAO,MAAM,gBAAgB,SAAmD,CAAA;AA6ChF;;GAEG;AACH,wBAAgB,YAAY,CAAC,WAAW,EAAE,WAAW;;;;;;EAQpD;AAGD,eAAO,MAAM,UAAU;;;;;;CAMtB,CAAA;AAED,eAAO,MAAM,QAAQ,SAAsG,CAAA;AAa3H;;;;;;GAMG;AACH,wBAAgB,WAAW,IAAI,OAAO,CAErC"}
@@ -1,50 +1,47 @@
1
1
  import { Flame } from '../generated/driveningress/v1/driveningress';
2
2
  import { Avatar } from './Avatar';
3
3
  import { AnimationPlayer } from '../audio/AnimationPlayer';
4
- import { AvatarState, ConnectionState } from '../types';
4
+ import { AvatarState, ConnectionState, AvatarPlaybackMode } from '../types';
5
5
  export declare class AvatarController {
6
+ private networkLayer?;
7
+ readonly playbackMode: AvatarPlaybackMode;
6
8
  protected avatar: Avatar;
7
- protected isConnected: boolean;
8
- protected isMuted: boolean;
9
- protected currentState: AvatarState;
10
9
  protected animationPlayer: AnimationPlayer | null;
11
10
  protected currentKeyframes: Flame[];
12
- protected transitionKeyframes: Flame[];
13
- protected currentReqId: string | null;
11
+ protected pendingAudioChunks: Array<{
12
+ data: Uint8Array;
13
+ isLast: boolean;
14
+ }>;
14
15
  protected isPlaying: boolean;
15
- private hasSentEnd;
16
+ protected isConnected: boolean;
17
+ protected currentState: AvatarState;
16
18
  onConnectionState: ((state: ConnectionState) => void) | null;
17
19
  onAvatarState: ((state: AvatarState) => void) | null;
18
20
  onError: ((error: Error) => void) | null;
19
21
  private eventListeners;
20
- private wsClient;
21
- private pendingAudioChunks;
22
- constructor(avatar: Avatar);
23
- /**
24
- * 启动服务
25
- */
26
- start(): Promise<void>;
22
+ private renderCallback?;
23
+ private transitionCompleteCallback?;
24
+ private playbackLoopId;
25
+ private lastRenderedFrameIndex;
26
+ constructor(avatar: Avatar, options?: {
27
+ playbackMode?: AvatarPlaybackMode;
28
+ });
27
29
  /**
28
- * 发送音频数据
30
+ * 获取 Avatar ID(供 NetworkLayer 使用)
29
31
  */
30
- send(audioData: ArrayBuffer, end?: boolean): void;
32
+ getAvatarId(): string;
31
33
  /**
32
- * 发送文字消息(Animation Only 模式不支持文字输入)
34
+ * 获取播放状态(供 NetworkLayer 使用)
33
35
  */
34
- sendText(_text: string): void;
36
+ getIsPlaying(): boolean;
35
37
  /**
36
- * 打断当前对话
38
+ * 设置连接状态(供 NetworkLayer 使用)
37
39
  */
38
- interrupt(): void;
40
+ setConnected(connected: boolean): void;
39
41
  /**
40
- * 关闭服务(断开连接)
41
- */
42
- close(): void;
43
- /**
44
- * 静音切换
42
+ * 获取连接状态
45
43
  */
46
- get mute(): boolean;
47
- set mute(value: boolean);
44
+ get connected(): boolean;
48
45
  /**
49
46
  * 获取当前状态
50
47
  */
@@ -55,71 +52,101 @@ export declare class AvatarController {
55
52
  */
56
53
  getAnimationPlayer(): AnimationPlayer | null;
57
54
  /**
58
- * 提供给视图层读取的过渡关键帧(Idle->Speaking),独立于主序列
55
+ * 启动服务(仅网络模式)
59
56
  */
60
- protected getTransitionKeyframes(): Flame[];
57
+ start(): Promise<void>;
61
58
  /**
62
- * 获取连接状态
59
+ * 发送音频到服务器(仅网络模式)
60
+ * 同时缓存到数据层用于播放
63
61
  */
64
- get connected(): boolean;
62
+ send(audioData: ArrayBuffer, end?: boolean): void;
65
63
  /**
66
- * 为 AvatarView 提供注册内部事件的接口
67
- * @internal
64
+ * 关闭服务(仅网络模式)
68
65
  */
69
- setupInternalEventListeners(callbacks: {
70
- onKeyframesUpdate?: (keyframes: Flame[]) => void;
71
- onStartRendering?: () => void;
72
- onStopRendering?: () => void;
73
- }): void;
66
+ close(): void;
74
67
  /**
75
- * 初始化播放器和客户端
68
+ * 开始播放(外部数据模式)
69
+ * 必须先调用此方法,传入初始数据开始播放
76
70
  */
77
- protected initializePlayers(): Promise<void>;
71
+ play(initialAudioChunks?: Array<{
72
+ data: Uint8Array;
73
+ isLast: boolean;
74
+ }>, initialKeyframes?: Flame[]): Promise<void>;
78
75
  /**
79
- * 清理播放器和客户端
76
+ * 发送音频数据(外部数据模式)
77
+ * 在 play() 之后流式添加剩余音频数据
80
78
  */
81
- protected cleanupPlayers(): void;
79
+ sendAudioChunk(data: Uint8Array, isLast?: boolean): void;
82
80
  /**
83
- * 停止播放
81
+ * 发送动画关键帧(外部数据模式或网络模式)
82
+ * 在 play() 之后流式添加剩余动画数据
84
83
  */
85
- protected stopPlayback(): void;
84
+ sendKeyframes(keyframes: Flame[]): void;
86
85
  /**
87
- * 开始播放音频和动画
86
+ * 打断当前播放
88
87
  */
89
- protected startPlayback(): Promise<void>;
88
+ interrupt(): void;
90
89
  /**
91
- * 注册内部事件监听器(仅供内部使用)
90
+ * 清理所有数据和资源
92
91
  */
93
- private registerEventListener;
92
+ clear(): void;
94
93
  /**
95
- * 触发内部事件(仅供内部使用)
94
+ * 开始流式播放(内部方法,由 NetworkLayer 或 play() 调用)
96
95
  */
97
- private emit;
96
+ startStreamingPlayback(): Promise<void>;
98
97
  /**
99
- * 处理接收到的消息
98
+ * 设置渲染回调(由 AvatarView 调用)
100
99
  */
101
- private handleMessage;
100
+ setRenderCallback(callback: (splatData: Float32Array, frameIndex: number) => void): void;
102
101
  /**
103
- * 处理动画消息(从服务器接收)
102
+ * 设置过渡完成回调(由 AvatarView 调用)
104
103
  */
105
- private handleAnimationMessage;
104
+ setTransitionCompleteCallback(callback: () => void): void;
106
105
  /**
107
- * 开始流式播放(准备播放器、添加音频数据、开始播放动画)
106
+ * 过渡完成通知(由 AvatarView 调用)
107
+ */
108
+ onTransitionComplete(): void;
109
+ /**
110
+ * 为 AvatarView 提供注册内部事件的接口
111
+ * @internal
108
112
  */
109
- private startStreamingPlayback;
113
+ setupInternalEventListeners(callbacks: {
114
+ onKeyframesUpdate?: (keyframes: Flame[]) => void;
115
+ onStartRendering?: () => void;
116
+ onStopRendering?: () => void;
117
+ onInterrupt?: () => void;
118
+ }): void;
110
119
  /**
111
- * 开始同步播放(用户音频 + 动画)
112
- * 注意:流式模式下,这个方法由 startStreamingPlayback() 调用
120
+ * 开始流式播放(内部实现)
113
121
  */
114
- private startSynchronizedPlayback;
122
+ private startStreamingPlaybackInternal;
115
123
  /**
116
- * 将 PCM 数据转换为 WAV Blob URL
117
- * 注意:流式模式下不再需要此方法,保留用于兼容性
124
+ * 播放循环:根据音频时间计算动画帧,通知渲染层渲染
118
125
  */
119
- private createAudioBlobURL;
126
+ private startPlaybackLoop;
127
+ /**
128
+ * 停止播放循环
129
+ */
130
+ private stopPlaybackLoop;
131
+ /**
132
+ * 停止播放
133
+ */
134
+ protected stopPlayback(): void;
135
+ /**
136
+ * 清理播放器
137
+ */
138
+ protected cleanupPlayers(): void;
139
+ /**
140
+ * 添加音频块到缓冲区
141
+ */
142
+ private addAudioChunkToBuffer;
143
+ /**
144
+ * 事件系统
145
+ */
146
+ private registerEventListener;
120
147
  /**
121
- * 设置 WebSocket 事件监听器
148
+ * 触发事件
122
149
  */
123
- private setupWebSocketListeners;
150
+ protected emit(event: string, data?: any): void;
124
151
  }
125
152
  //# sourceMappingURL=AvatarController.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AvatarController.d.ts","sourceRoot":"","sources":["../../core/AvatarController.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AvatarController.d.ts","sourceRoot":"","sources":["../../core/AvatarController.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,6CAA6C,CAAA;AACxE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAItC,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,EAAE,WAAW,EAAE,eAAe,EAAiB,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAK1F,qBAAa,gBAAgB;IAE3B,OAAO,CAAC,YAAY,CAAC,CAAc;IACnC,SAAgB,YAAY,EAAE,kBAAkB,CAAA;IAChD,SAAS,CAAC,MAAM,EAAE,MAAM,CAAA;IAGxB,SAAS,CAAC,eAAe,EAAE,eAAe,GAAG,IAAI,CAAO;IACxD,SAAS,CAAC,gBAAgB,EAAE,KAAK,EAAE,CAAK;IACxC,SAAS,CAAC,kBAAkB,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,UAAU,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC,CAAK;IAC/E,SAAS,CAAC,SAAS,UAAQ;IAG3B,SAAS,CAAC,WAAW,UAAQ;IAC7B,SAAS,CAAC,YAAY,EAAE,WAAW,CAAmB;IAG/C,iBAAiB,EAAE,CAAC,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC,GAAG,IAAI,CAAO;IACnE,aAAa,EAAE,CAAC,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC,GAAG,IAAI,CAAO;IAC3D,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC,GAAG,IAAI,CAAO;IACtD,OAAO,CAAC,cAAc,CAA+C;IAGrE,OAAO,CAAC,cAAc,CAAC,CAAuD;IAC9E,OAAO,CAAC,0BAA0B,CAAC,CAAY;IAG/C,OAAO,CAAC,cAAc,CAAsB;IAC5C,OAAO,CAAC,sBAAsB,CAAa;gBAE/B,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,kBAAkB,CAAA;KAAE;IAY3E;;OAEG;IACH,WAAW,IAAI,MAAM;IAIrB;;OAEG;IACH,YAAY,IAAI,OAAO;IAIvB;;OAEG;IACH,YAAY,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI;IAItC;;OAEG;IACH,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED;;OAEG;IACH,IAAI,KAAK,IAAI,WAAW,CAEvB;IAED;;;OAGG;IACI,kBAAkB,IAAI,eAAe,GAAG,IAAI;IAMnD;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA8B5B;;;OAGG;IACH,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,GAAG,GAAE,OAAe,GAAG,IAAI;IAmBxD;;OAEG;IACH,KAAK,IAAI,IAAI;IAQb;;;OAGG;IACG,IAAI,CACR,kBAAkB,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,UAAU,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC,EACjE,gBAAgB,CAAC,EAAE,KAAK,EAAE,GACzB,OAAO,CAAC,IAAI,CAAC;IAwChB;;;OAGG;IACH,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,GAAE,OAAe,GAAG,IAAI;IAa/D;;;OAGG;IACH,aAAa,CAAC,SAAS,EAAE,KAAK,EAAE,GAAG,IAAI;IAWvC;;OAEG;IACH,SAAS,IAAI,IAAI;IAajB;;OAEG;IACH,KAAK,IAAI,IAAI;IAcb;;OAEG;IACH,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC;IAIvC;;OAEG;IACH,iBAAiB,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAIxF;;OAEG;IACH,6BAA6B,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;IAIzD;;OAEG;IACH,oBAAoB,IAAI,IAAI;IAQ5B;;;OAGG;IACI,2BAA2B,CAAC,SAAS,EAAE;QAC5C,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,IAAI,CAAA;QAChD,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAA;QAC7B,eAAe,CAAC,EAAE,MAAM,IAAI,CAAA;QAC5B,WAAW,CAAC,EAAE,MAAM,IAAI,CAAA;KACzB,GAAG,IAAI;IAiBR;;OAEG;YACW,8BAA8B;IA8D5C;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAuEzB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAOxB;;OAEG;IACH,SAAS,CAAC,YAAY,IAAI,IAAI;IAY9B;;OAEG;IACH,SAAS,CAAC,cAAc,IAAI,IAAI;IAOhC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAY7B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAO7B;;OAEG;IACH,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI;CAMhD"}
@@ -1 +1 @@
1
- {"version":3,"file":"AvatarDownloader.d.ts","sourceRoot":"","sources":["../../core/AvatarDownloader.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAC9E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAA;AAOpE,UAAU,YAAY;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,KAAK,gBAAgB,GAAG,CAAC,IAAI,EAAE,YAAY,KAAK,IAAI,CAAA;AAEpD,UAAU,iBAAiB;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAAA;CAC3B;AAED,UAAU,cAAc;IACtB,UAAU,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAChC,aAAa,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IACnC,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAC7B,QAAQ,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAC/B;AAED,UAAU,mBAAmB;IAC3B,KAAK,EAAE,WAAW,CAAA;IAClB,UAAU,EAAE,WAAW,CAAA;IACvB,aAAa,CAAC,EAAE,WAAW,CAAA;IAC3B,aAAa,CAAC,EAAE,WAAW,CAAA;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,iBAAiB,EAAE,iBAAiB,CAAA;IACpC,aAAa,EAAE,mBAAmB,CAAA;IAClC,qBAAqB,CAAC,EAAE,qBAAqB,CAAA;IAC7C,iBAAiB,CAAC,EAAE,iBAAiB,CAAA;CACtC;AAkCD,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,cAAc,CAAQ;IAC9B,OAAO,CAAC,eAAe,CAA0B;gBAErC,cAAc,SAAM;IAKhC;;;OAGG;IACG,qBAAqB,CACzB,cAAc,CAAC,EAAE,cAAc,EAC/B,gBAAgB,GAAE,gBAAgB,GAAG,IAAW,GAC/C,OAAO,CAAC,iBAAiB,CAAC;IAuE7B;;;OAGG;YACW,wBAAwB;IA6DtC;;OAEG;IACG,kBAAkB,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC;IAwBlG;;OAEG;IACG,iBAAiB,CACrB,aAAa,EAAE,aAAa,EAC5B,OAAO,CAAC,EAAE;QAAE,aAAa,CAAC,EAAE,OAAO,CAAC;QAAC,gBAAgB,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAA;KAAE,GAChF,OAAO,CAAC,mBAAmB,CAAC;IAmG/B;;OAEG;IACG,gBAAgB,CACpB,aAAa,EAAE,aAAa,EAC5B,OAAO,CAAC,EAAE;QACR,aAAa,CAAC,EAAE,OAAO,CAAA;QACvB,gBAAgB,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAA;KAC3C,GACA,OAAO,CAAC,aAAa,CAAC;IAkCzB;;OAEG;IACH,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAIvD;;OAEG;IACH,KAAK;IAML;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IA+BxB;;;OAGG;IACH,OAAO,CAAC,eAAe;IA+BvB;;;;;OAKG;IACG,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;CAqBpE"}
1
+ {"version":3,"file":"AvatarDownloader.d.ts","sourceRoot":"","sources":["../../core/AvatarDownloader.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAC9E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAA;AAOpE,UAAU,YAAY;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,KAAK,gBAAgB,GAAG,CAAC,IAAI,EAAE,YAAY,KAAK,IAAI,CAAA;AAEpD,UAAU,iBAAiB;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAAA;CAC3B;AAED,UAAU,cAAc;IACtB,UAAU,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAChC,aAAa,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IACnC,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAC7B,QAAQ,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAC/B;AAED,UAAU,mBAAmB;IAC3B,KAAK,EAAE,WAAW,CAAA;IAClB,UAAU,EAAE,WAAW,CAAA;IACvB,aAAa,CAAC,EAAE,WAAW,CAAA;IAC3B,aAAa,CAAC,EAAE,WAAW,CAAA;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,iBAAiB,EAAE,iBAAiB,CAAA;IACpC,aAAa,EAAE,mBAAmB,CAAA;IAClC,qBAAqB,CAAC,EAAE,qBAAqB,CAAA;IAC7C,iBAAiB,CAAC,EAAE,iBAAiB,CAAA;CACtC;AAkCD,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,cAAc,CAAQ;IAC9B,OAAO,CAAC,eAAe,CAA0B;gBAErC,cAAc,SAAM;IAKhC;;;OAGG;IACG,qBAAqB,CACzB,cAAc,CAAC,EAAE,cAAc,EAC/B,gBAAgB,GAAE,gBAAgB,GAAG,IAAW,GAC/C,OAAO,CAAC,iBAAiB,CAAC;IAuE7B;;;OAGG;YACW,wBAAwB;IA6DtC;;OAEG;IACG,kBAAkB,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC;IAwBlG;;OAEG;IACG,iBAAiB,CACrB,aAAa,EAAE,aAAa,EAC5B,OAAO,CAAC,EAAE;QAAE,aAAa,CAAC,EAAE,OAAO,CAAC;QAAC,gBAAgB,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAA;KAAE,GAChF,OAAO,CAAC,mBAAmB,CAAC;IA+G/B;;OAEG;IACG,gBAAgB,CACpB,aAAa,EAAE,aAAa,EAC5B,OAAO,CAAC,EAAE;QACR,aAAa,CAAC,EAAE,OAAO,CAAA;QACvB,gBAAgB,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAA;KAC3C,GACA,OAAO,CAAC,aAAa,CAAC;IAkCzB;;OAEG;IACH,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAIvD;;OAEG;IACH,KAAK;IAML;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IA+BxB;;;OAGG;IACH,OAAO,CAAC,eAAe;IA+BvB;;;;;OAKG;IACG,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;CA0BpE"}
@@ -8,6 +8,7 @@ export declare class AvatarKit {
8
8
  private static readonly _version;
9
9
  private static _avatarCore;
10
10
  private static _dynamicSdkConfig;
11
+ private static readonly _logLevels;
11
12
  /**
12
13
  * SDK 初始化
13
14
  * @param appId 前端需要在 HTTP Headers 和 WebSocket Headers 中都带上
@@ -56,5 +57,10 @@ export declare class AvatarKit {
56
57
  realtimeWsUrl: string;
57
58
  driveningressWsUrl: string;
58
59
  };
60
+ /**
61
+ * 统一的 Telemetry 日志接口,对齐 iOS 版本的 SPAvatarSDK.log
62
+ * 使用腾讯云 CLS 进行日志上报
63
+ */
64
+ static logEvent(event: string, level?: 'debug' | 'info' | 'warning' | 'error', contents?: Record<string, unknown>): void;
59
65
  }
60
66
  //# sourceMappingURL=AvatarKit.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AvatarKit.d.ts","sourceRoot":"","sources":["../../core/AvatarKit.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAK7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAE7D,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAC,cAAc,CAAQ;IACrC,OAAO,CAAC,MAAM,CAAC,cAAc,CAA6B;IAC1D,OAAO,CAAC,MAAM,CAAC,aAAa,CAAsB;IAClD,OAAO,CAAC,MAAM,CAAC,OAAO,CAAsB;IAC5C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAA6E;IAC7G,OAAO,CAAC,MAAM,CAAC,WAAW,CAAiC;IAC3D,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAoD;IAEpF;;;;OAIG;WACU,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAgCnF;;OAEG;mBACkB,oBAAoB;IA2CzC;;;;OAIG;IACH,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAI3C;;;OAGG;IACH,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAKtC,MAAM,KAAK,aAAa,IAAI,OAAO,CAElC;IAED,MAAM,KAAK,aAAa,IAAI,aAAa,GAAG,IAAI,CAE/C;IAED,MAAM,KAAK,YAAY,IAAI,MAAM,GAAG,IAAI,CAEvC;IAED,MAAM,KAAK,MAAM,IAAI,MAAM,GAAG,IAAI,CAEjC;IAED,MAAM,KAAK,OAAO,IAAI,MAAM,CAE3B;IAED;;;OAGG;IACH,MAAM,CAAC,aAAa,IAAI,iBAAiB,GAAG,IAAI;IAIhD;;OAEG;IACH,MAAM,CAAC,OAAO,IAAI,IAAI;IA0BtB;;OAEG;mBACkB,eAAe;IAUpC;;OAEG;IACH,MAAM,CAAC,oBAAoB,IAAI;QAC7B,aAAa,EAAE,MAAM,CAAA;QACrB,kBAAkB,EAAE,MAAM,CAAA;QAC1B,aAAa,EAAE,MAAM,CAAA;QACrB,kBAAkB,EAAE,MAAM,CAAA;KAC3B;CA0CF"}
1
+ {"version":3,"file":"AvatarKit.d.ts","sourceRoot":"","sources":["../../core/AvatarKit.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAM7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAE7D,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAC,cAAc,CAAQ;IACrC,OAAO,CAAC,MAAM,CAAC,cAAc,CAA6B;IAC1D,OAAO,CAAC,MAAM,CAAC,aAAa,CAAsB;IAClD,OAAO,CAAC,MAAM,CAAC,OAAO,CAAsB;IAC5C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAA6E;IAC7G,OAAO,CAAC,MAAM,CAAC,WAAW,CAAiC;IAC3D,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAoD;IACpF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAKxB;IAEV;;;;OAIG;WACU,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IA2CnF;;OAEG;mBACkB,oBAAoB;IA2CzC;;;;OAIG;IACH,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAI3C;;;OAGG;IACH,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAKtC,MAAM,KAAK,aAAa,IAAI,OAAO,CAElC;IAED,MAAM,KAAK,aAAa,IAAI,aAAa,GAAG,IAAI,CAE/C;IAED,MAAM,KAAK,YAAY,IAAI,MAAM,GAAG,IAAI,CAEvC;IAED,MAAM,KAAK,MAAM,IAAI,MAAM,GAAG,IAAI,CAEjC;IAED,MAAM,KAAK,OAAO,IAAI,MAAM,CAE3B;IAED;;;OAGG;IACH,MAAM,CAAC,aAAa,IAAI,iBAAiB,GAAG,IAAI;IAIhD;;OAEG;IACH,MAAM,CAAC,OAAO,IAAI,IAAI;IA2BtB;;OAEG;mBACkB,eAAe;IAcpC;;OAEG;IACH,MAAM,CAAC,oBAAoB,IAAI;QAC7B,aAAa,EAAE,MAAM,CAAA;QACrB,kBAAkB,EAAE,MAAM,CAAA;QAC1B,aAAa,EAAE,MAAM,CAAA;QACrB,kBAAkB,EAAE,MAAM,CAAA;KAC3B;IA2CD;;;OAGG;IACH,MAAM,CAAC,QAAQ,CACb,KAAK,EAAE,MAAM,EACb,KAAK,GAAE,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,OAAgB,EACtD,QAAQ,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACrC,IAAI;CAgBR"}
@@ -1 +1 @@
1
- {"version":3,"file":"AvatarManager.d.ts","sourceRoot":"","sources":["../../core/AvatarManager.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAIhD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAIjC,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAC,SAAS,CAA6B;IACrD,OAAO,CAAC,gBAAgB,CAAgC;IACxD,OAAO,CAAC,oBAAoB,CAAiB;IAE7C;;OAEG;IACH,MAAM,KAAK,MAAM,IAAI,aAAa,CAKjC;IAED;;;;;;OAMG;IACG,IAAI,CACR,EAAE,EAAE,MAAM,EACV,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,KAAK,IAAI,EACjD,OAAO,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,OAAO,CAAA;KAAE,GACtC,OAAO,CAAC,MAAM,CAAC;IAsElB;;OAEG;IACH,UAAU,IAAI,IAAI;CAKnB"}
1
+ {"version":3,"file":"AvatarManager.d.ts","sourceRoot":"","sources":["../../core/AvatarManager.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAIhD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAIjC,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAC,SAAS,CAA6B;IACrD,OAAO,CAAC,gBAAgB,CAAgC;IACxD,OAAO,CAAC,oBAAoB,CAAiB;IAE7C;;OAEG;IACH,MAAM,KAAK,MAAM,IAAI,aAAa,CAKjC;IAED;;;;;;OAMG;IACG,IAAI,CACR,EAAE,EAAE,MAAM,EACV,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,KAAK,IAAI,EACjD,OAAO,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,OAAO,CAAA;KAAE,GACtC,OAAO,CAAC,MAAM,CAAC;IAiFlB;;OAEG;IACH,UAAU,IAAI,IAAI;CAKnB"}
@@ -1,10 +1,10 @@
1
- import { CameraConfig, RenderPerformanceStats } from '../types';
1
+ import { CameraConfig, RenderPerformanceStats, AvatarViewOptions, AvatarPlaybackMode } from '../types';
2
2
  import { Avatar } from './Avatar';
3
3
  import { AvatarController } from './AvatarController';
4
4
  export declare class AvatarView {
5
- readonly avatarController: AvatarController;
6
- backgroundImage: string | null;
7
- backgroundOpaque: boolean;
5
+ private readonly avatarController;
6
+ readonly playbackMode: AvatarPlaybackMode;
7
+ private readonly avatar;
8
8
  private canvas;
9
9
  private renderSystem;
10
10
  private isInitialized;
@@ -12,7 +12,6 @@ export declare class AvatarView {
12
12
  private isRealtimePlaying;
13
13
  private currentKeyframes;
14
14
  private lastRenderedFrameIndex;
15
- private realtimeStartTime;
16
15
  private lastRealtimeProtoFrame;
17
16
  private idleResumeIndexPending;
18
17
  private idleAnimationLoopId;
@@ -44,9 +43,13 @@ export declare class AvatarView {
44
43
  private getCachedIdleFirstFrame;
45
44
  /**
46
45
  * 构造函数
47
- * 使用 AvatarController(纯动画驱动模式)
46
+ * 创建统一的 AvatarController,内部根据配置自动组合网络层
48
47
  */
49
- constructor(avatar: Avatar, canvasContainer?: HTMLElement);
48
+ constructor(avatar: Avatar, options?: AvatarViewOptions);
49
+ /**
50
+ * 获取控制器(公共接口)
51
+ */
52
+ get controller(): AvatarController;
50
53
  /**
51
54
  * 创建canvas元素
52
55
  */
@@ -68,9 +71,13 @@ export declare class AvatarView {
68
71
  */
69
72
  private getDefaultCameraConfig;
70
73
  /**
71
- * 根据 PreloadCameraSettings 转换为 CameraConfig
74
+ * 根据资源解析最终的相机配置,优先使用角色设置,其次 camera.json
75
+ */
76
+ private resolveCameraConfig;
77
+ /**
78
+ * 从角色设置中推导相机配置
72
79
  */
73
- private convertPreloadCameraToConfig;
80
+ private deriveCameraConfigFromSettings;
74
81
  /**
75
82
  * 渲染第一帧
76
83
  */
@@ -96,35 +103,33 @@ export declare class AvatarView {
96
103
  */
97
104
  private stopAllAnimationLoops;
98
105
  /**
99
- * 渲染实时对话帧
106
+ * 渲染实时帧(由播放层回调调用)
100
107
  */
101
108
  private renderRealtimeFrame;
109
+ /**
110
+ * 过渡完成回调(通知播放层启动音频)
111
+ */
112
+ private onTransitionComplete;
113
+ /**
114
+ * 处理打断
115
+ */
116
+ private handleInterrupt;
102
117
  /**
103
118
  * 设置 AvatarController 事件监听器
104
119
  */
105
120
  private setupControllerEventListeners;
106
121
  /**
107
- * 设置当前关键帧数据
122
+ * 准备实时渲染(生成 Idle -> Speaking 过渡)
108
123
  */
109
- private setCurrentKeyframes;
124
+ private prepareRealtimeRendering;
110
125
  /**
111
- * 开始实时对话渲染
126
+ * 开始实时渲染循环
112
127
  */
113
128
  private startRealtimeRendering;
114
129
  /**
115
130
  * 停止实时对话渲染
116
131
  */
117
132
  private stopRealtimeRendering;
118
- /**
119
- * 设置背景图
120
- * 支持开发者来设置渲染数字人背景图
121
- */
122
- setBackgroundImage(imageUrl: string | null): void;
123
- /**
124
- * 设置背景是否不透明
125
- * 支持开发者来设置是否背景不透明
126
- */
127
- setBackgroundOpaque(opaque: boolean): void;
128
133
  /**
129
134
  * 清理视图资源
130
135
  * 关闭 avatarController 并清理所有相关资源
@@ -147,12 +152,5 @@ export declare class AvatarView {
147
152
  * @returns 渲染性能统计数据,如果渲染系统未初始化则返回 null
148
153
  */
149
154
  getPerformanceStats(): RenderPerformanceStats | null;
150
- /**
151
- * 将 CameraInfo 转换为 CameraConfig
152
- */
153
- /**
154
- * 设置 canvas 的 CSS 背景(与 app 对齐)
155
- */
156
- private setCanvasBackground;
157
155
  }
158
156
  //# sourceMappingURL=AvatarView.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AvatarView.d.ts","sourceRoot":"","sources":["../../core/AvatarView.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAA;AAEpE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAQtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAErD,qBAAa,UAAU;IACrB,SAAgB,gBAAgB,EAAE,gBAAgB,CAAA;IAC3C,eAAe,EAAE,MAAM,GAAG,IAAI,CAAO;IACrC,gBAAgB,EAAE,OAAO,CAAQ;IAGxC,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,YAAY,CAA4B;IAChD,OAAO,CAAC,aAAa,CAAiB;IACtC,OAAO,CAAC,YAAY,CAA4B;IAGhD,OAAO,CAAC,iBAAiB,CAAiB;IAC1C,OAAO,CAAC,gBAAgB,CAAc;IACtC,OAAO,CAAC,sBAAsB,CAAa;IAC3C,OAAO,CAAC,iBAAiB,CAAY;IACrC,OAAO,CAAC,sBAAsB,CAAqB;IACnD,OAAO,CAAC,sBAAsB,CAAsB;IAGpD,OAAO,CAAC,mBAAmB,CAAsB;IACjD,OAAO,CAAC,uBAAuB,CAAsB;IACrD,OAAO,CAAC,cAAc,CAA8B;IACpD,OAAO,CAAC,cAAc,CAA4B;IAGlD,OAAO,CAAC,mBAAmB,CAAc;IACzC,OAAO,CAAC,eAAe,CAAiB;IACxC,OAAO,CAAC,mBAAmB,CAAY;IACvC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAc;IACnD,OAAO,CAAC,wBAAwB,CAAiB;IACjD,OAAO,CAAC,oBAAoB,CAAqB;IACjD,OAAO,CAAC,qBAAqB,CAAY;IAEzC;;OAEG;IACH,OAAO,CAAC,cAAc;IA8BtB;;OAEG;IACH,OAAO,CAAC,YAAY;IAepB;;OAEG;IACH,OAAO,CAAC,gCAAgC;IAoBxC;;OAEG;YACW,uBAAuB;IAgBrC;;;OAGG;gBAED,MAAM,EAAE,MAAM,EACd,eAAe,CAAC,EAAE,WAAW;IAe/B;;OAEG;IACH,OAAO,CAAC,YAAY;IA4DpB;;OAEG;IACH,SAAS,IAAI,iBAAiB;IAI9B;;OAEG;YACW,cAAc;IAsD5B;;OAEG;YACW,sBAAsB;IA0BpC;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAK9B;;OAEG;IACH,OAAO,CAAC,4BAA4B;IAoBpC;;OAEG;YACW,gBAAgB;IAsC9B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAsE9B;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAqFlC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAS7B;;OAEG;IACH,OAAO,CAAC,yBAAyB;IASjC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAO7B;;OAEG;YACW,mBAAmB;IAwFjC;;OAEG;IACH,OAAO,CAAC,6BAA6B;IAcrC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAa3B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAmD9B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAwC7B;;;OAGG;IACH,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAIjD;;;OAGG;IACH,mBAAmB,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAI1C;;;OAGG;IACH,OAAO,IAAI,IAAI;IAgDf;;OAEG;IACH,eAAe,IAAI,YAAY,GAAG,IAAI;IAItC;;OAEG;IACH,kBAAkB,CAAC,YAAY,EAAE,YAAY,GAAG,IAAI;IAapD;;OAEG;IACH,OAAO,CAAC,YAAY;IAMpB;;;OAGG;IACH,mBAAmB,IAAI,sBAAsB,GAAG,IAAI;IAapD;;OAEG;IACH;;OAEG;IACH,OAAO,CAAC,mBAAmB;CAkB5B"}
1
+ {"version":3,"file":"AvatarView.d.ts","sourceRoot":"","sources":["../../core/AvatarView.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ import { AvatarController } from './AvatarController';
2
+ export declare class NetworkLayer {
3
+ private wsClient;
4
+ private dataController;
5
+ private currentReqId;
6
+ private hasSentEnd;
7
+ private readonly audioBytesPerSecond;
8
+ private audioMetrics;
9
+ constructor(dataController: AvatarController);
10
+ /**
11
+ * 连接服务
12
+ */
13
+ connect(characterId: string): Promise<void>;
14
+ /**
15
+ * 发送音频数据到服务器
16
+ */
17
+ sendAudioData(audioData: ArrayBuffer, isLast: boolean): void;
18
+ /**
19
+ * 断开连接
20
+ */
21
+ disconnect(): void;
22
+ /**
23
+ * 获取当前请求ID
24
+ */
25
+ getCurrentReqId(): string | null;
26
+ /**
27
+ * 重置请求ID(用于打断后清理)
28
+ */
29
+ resetReqId(): void;
30
+ /**
31
+ * 设置 WebSocket 事件监听器
32
+ */
33
+ private setupWebSocketListeners;
34
+ /**
35
+ * 处理接收到的消息
36
+ */
37
+ private handleMessage;
38
+ /**
39
+ * 处理动画消息
40
+ */
41
+ private handleAnimationMessage;
42
+ /**
43
+ * 处理错误消息
44
+ */
45
+ private handleErrorMessage;
46
+ /**
47
+ * 创建音频指标
48
+ */
49
+ private createAudioMetrics;
50
+ /**
51
+ * 重置音频指标
52
+ */
53
+ private resetAudioMetrics;
54
+ /**
55
+ * 上报音频指标
56
+ */
57
+ private reportAudioMetrics;
58
+ }
59
+ //# sourceMappingURL=NetworkLayer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NetworkLayer.d.ts","sourceRoot":"","sources":["../../core/NetworkLayer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAsB1D,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAA0B;IAC1C,OAAO,CAAC,cAAc,CAAkB;IACxC,OAAO,CAAC,YAAY,CAAsB;IAC1C,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAkC;IACtE,OAAO,CAAC,YAAY,CAA0C;gBAElD,cAAc,EAAE,gBAAgB;IAgB5C;;OAEG;IACG,OAAO,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjD;;OAEG;IACH,aAAa,CAAC,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI;IAyE5D;;OAEG;IACH,UAAU,IAAI,IAAI;IAMlB;;OAEG;IACH,eAAe,IAAI,MAAM,GAAG,IAAI;IAIhC;;OAEG;IACH,UAAU,IAAI,IAAI;IAKlB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IA2C/B;;OAEG;IACH,OAAO,CAAC,aAAa;IAwBrB;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAiD9B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA4C1B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAY1B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAIzB;;OAEG;IACH,OAAO,CAAC,kBAAkB;CAc3B"}