@spatialwalk/avatarkit 1.0.0-beta.1 → 1.0.0-beta.11
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/CHANGELOG.md +185 -0
- package/README.md +450 -148
- package/dist/{StreamingAudioPlayer-C2TfYsO8.js → StreamingAudioPlayer-CLFmPod8.js} +88 -62
- package/dist/StreamingAudioPlayer-CLFmPod8.js.map +1 -0
- package/dist/animation/AnimationWebSocketClient.d.ts.map +1 -1
- package/dist/animation/utils/flameConverter.d.ts.map +1 -1
- package/dist/audio/AnimationPlayer.d.ts +4 -0
- package/dist/audio/AnimationPlayer.d.ts.map +1 -1
- package/dist/audio/StreamingAudioPlayer.d.ts +10 -0
- package/dist/audio/StreamingAudioPlayer.d.ts.map +1 -1
- package/dist/avatar_core_wasm-D4eEi7Eh.js +1666 -0
- package/dist/{avatar_core_wasm-DmkU6dYn.js.map → avatar_core_wasm-D4eEi7Eh.js.map} +1 -1
- package/dist/avatar_core_wasm.wasm +0 -0
- package/dist/config/app-config.d.ts +3 -7
- package/dist/config/app-config.d.ts.map +1 -1
- package/dist/config/constants.d.ts +19 -3
- package/dist/config/constants.d.ts.map +1 -1
- package/dist/core/Avatar.d.ts +0 -8
- package/dist/core/Avatar.d.ts.map +1 -1
- package/dist/core/AvatarController.d.ts +50 -74
- package/dist/core/AvatarController.d.ts.map +1 -1
- package/dist/core/AvatarDownloader.d.ts +0 -5
- package/dist/core/AvatarDownloader.d.ts.map +1 -1
- package/dist/core/AvatarKit.d.ts +3 -15
- package/dist/core/AvatarKit.d.ts.map +1 -1
- package/dist/core/AvatarManager.d.ts.map +1 -1
- package/dist/core/AvatarView.d.ts +47 -46
- package/dist/core/AvatarView.d.ts.map +1 -1
- package/dist/core/NetworkLayer.d.ts +59 -0
- package/dist/core/NetworkLayer.d.ts.map +1 -0
- package/dist/index-Ck21a9C4.js +5999 -0
- package/dist/index-Ck21a9C4.js.map +1 -0
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -11
- package/dist/renderer/RenderSystem.d.ts +4 -2
- package/dist/renderer/RenderSystem.d.ts.map +1 -1
- package/dist/renderer/webgl/webglRenderer.d.ts.map +1 -1
- package/dist/types/index.d.ts +18 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/utils/cls-tracker.d.ts +17 -0
- package/dist/utils/cls-tracker.d.ts.map +1 -0
- package/dist/utils/logger.d.ts +1 -1
- package/dist/utils/logger.d.ts.map +1 -1
- package/package.json +14 -18
- package/dist/StreamingAudioPlayer-C2TfYsO8.js.map +0 -1
- package/dist/avatar_core_wasm-DmkU6dYn.js +0 -1666
- package/dist/config/region-config.d.ts +0 -17
- package/dist/config/region-config.d.ts.map +0 -1
- package/dist/generated/google/protobuf/any.d.ts +0 -145
- package/dist/generated/google/protobuf/any.d.ts.map +0 -1
- package/dist/generated/jsonapi/v1/base.d.ts +0 -140
- package/dist/generated/jsonapi/v1/base.d.ts.map +0 -1
- package/dist/generated/platform/v1/asset_groups.d.ts +0 -225
- package/dist/generated/platform/v1/asset_groups.d.ts.map +0 -1
- package/dist/generated/platform/v1/assets.d.ts +0 -149
- package/dist/generated/platform/v1/assets.d.ts.map +0 -1
- package/dist/generated/platform/v1/character.d.ts +0 -395
- package/dist/generated/platform/v1/character.d.ts.map +0 -1
- package/dist/generated/platform/v1/redeem.d.ts +0 -22
- package/dist/generated/platform/v1/redeem.d.ts.map +0 -1
- package/dist/index-DwhR9l52.js +0 -9712
- package/dist/index-DwhR9l52.js.map +0 -1
- package/dist/utils/posthog-tracker.d.ts +0 -82
- package/dist/utils/posthog-tracker.d.ts.map +0 -1
- package/dist/utils/toast.d.ts +0 -74
- package/dist/utils/toast.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;;;;
|
|
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
|
-
|
|
2
|
-
export declare const
|
|
3
|
-
|
|
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,
|
|
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"}
|
package/dist/core/Avatar.d.ts
CHANGED
|
@@ -11,13 +11,5 @@ export declare class Avatar {
|
|
|
11
11
|
* @param resources 资源数据
|
|
12
12
|
*/
|
|
13
13
|
constructor(id: string, characterMeta: CharacterMeta, resources: PreloadResult);
|
|
14
|
-
/**
|
|
15
|
-
* 获取角色元数据(内部使用)
|
|
16
|
-
*/
|
|
17
|
-
getCharacterMeta(): CharacterMeta;
|
|
18
|
-
/**
|
|
19
|
-
* 获取资源数据(内部使用)
|
|
20
|
-
*/
|
|
21
|
-
getResources(): PreloadResult;
|
|
22
14
|
}
|
|
23
15
|
//# sourceMappingURL=Avatar.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Avatar.d.ts","sourceRoot":"","sources":["../../core/Avatar.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAC7C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAEvD,qBAAa,MAAM;IACjB,SAAgB,EAAE,EAAE,MAAM,CAAA;IAC1B,OAAO,CAAC,aAAa,CAAe;IACpC,OAAO,CAAC,SAAS,CAAe;IAEhC;;;;;OAKG;gBACS,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,SAAS,EAAE,aAAa;
|
|
1
|
+
{"version":3,"file":"Avatar.d.ts","sourceRoot":"","sources":["../../core/Avatar.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAC7C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAEvD,qBAAa,MAAM;IACjB,SAAgB,EAAE,EAAE,MAAM,CAAA;IAC1B,OAAO,CAAC,aAAa,CAAe;IACpC,OAAO,CAAC,SAAS,CAAe;IAEhC;;;;;OAKG;gBACS,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,SAAS,EAAE,aAAa;CAqB/E"}
|
|
@@ -1,125 +1,101 @@
|
|
|
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
|
|
13
|
-
|
|
11
|
+
protected pendingAudioChunks: Array<{
|
|
12
|
+
data: Uint8Array;
|
|
13
|
+
isLast: boolean;
|
|
14
|
+
}>;
|
|
14
15
|
protected isPlaying: boolean;
|
|
15
|
-
|
|
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
|
|
21
|
-
private
|
|
22
|
-
|
|
22
|
+
private renderCallback?;
|
|
23
|
+
private transitionCompleteCallback?;
|
|
24
|
+
private playbackLoopId;
|
|
25
|
+
private lastRenderedFrameIndex;
|
|
26
|
+
constructor(avatar: Avatar, options?: {
|
|
27
|
+
playbackMode?: AvatarPlaybackMode;
|
|
28
|
+
});
|
|
23
29
|
/**
|
|
24
|
-
*
|
|
30
|
+
* 启动服务(仅网络模式)
|
|
25
31
|
*/
|
|
26
32
|
start(): Promise<void>;
|
|
27
33
|
/**
|
|
28
|
-
*
|
|
34
|
+
* 发送音频到服务器(仅网络模式)
|
|
35
|
+
* 同时缓存到数据层用于播放
|
|
29
36
|
*/
|
|
30
37
|
send(audioData: ArrayBuffer, end?: boolean): void;
|
|
31
38
|
/**
|
|
32
|
-
*
|
|
33
|
-
*/
|
|
34
|
-
sendText(_text: string): void;
|
|
35
|
-
/**
|
|
36
|
-
* 打断当前对话
|
|
37
|
-
*/
|
|
38
|
-
interrupt(): void;
|
|
39
|
-
/**
|
|
40
|
-
* 关闭服务(断开连接)
|
|
39
|
+
* 关闭服务(仅网络模式)
|
|
41
40
|
*/
|
|
42
41
|
close(): void;
|
|
43
42
|
/**
|
|
44
|
-
*
|
|
43
|
+
* 开始播放(外部数据模式)
|
|
44
|
+
* 必须先调用此方法,传入初始数据开始播放
|
|
45
45
|
*/
|
|
46
|
-
|
|
47
|
-
|
|
46
|
+
play(initialAudioChunks?: Array<{
|
|
47
|
+
data: Uint8Array;
|
|
48
|
+
isLast: boolean;
|
|
49
|
+
}>, initialKeyframes?: Flame[]): Promise<void>;
|
|
48
50
|
/**
|
|
49
|
-
*
|
|
51
|
+
* 发送音频数据(外部数据模式)
|
|
52
|
+
* 在 play() 之后流式添加剩余音频数据
|
|
50
53
|
*/
|
|
51
|
-
|
|
54
|
+
sendAudioChunk(data: Uint8Array, isLast?: boolean): void;
|
|
52
55
|
/**
|
|
53
|
-
*
|
|
54
|
-
*
|
|
56
|
+
* 发送动画关键帧(外部数据模式或网络模式)
|
|
57
|
+
* 在 play() 之后流式添加剩余动画数据
|
|
55
58
|
*/
|
|
56
|
-
|
|
59
|
+
sendKeyframes(keyframes: Flame[]): void;
|
|
57
60
|
/**
|
|
58
|
-
*
|
|
61
|
+
* 打断当前播放
|
|
59
62
|
*/
|
|
60
|
-
|
|
63
|
+
interrupt(): void;
|
|
61
64
|
/**
|
|
62
|
-
*
|
|
65
|
+
* 清理所有数据和资源
|
|
63
66
|
*/
|
|
64
|
-
|
|
67
|
+
clear(): void;
|
|
65
68
|
/**
|
|
66
|
-
*
|
|
67
|
-
* @internal
|
|
69
|
+
* 开始流式播放(内部实现)
|
|
68
70
|
*/
|
|
69
|
-
|
|
70
|
-
onKeyframesUpdate?: (keyframes: Flame[]) => void;
|
|
71
|
-
onStartRendering?: () => void;
|
|
72
|
-
onStopRendering?: () => void;
|
|
73
|
-
}): void;
|
|
71
|
+
private startStreamingPlaybackInternal;
|
|
74
72
|
/**
|
|
75
|
-
*
|
|
73
|
+
* 播放循环:根据音频时间计算动画帧,通知渲染层渲染
|
|
76
74
|
*/
|
|
77
|
-
|
|
75
|
+
private startPlaybackLoop;
|
|
78
76
|
/**
|
|
79
|
-
*
|
|
77
|
+
* 停止播放循环
|
|
80
78
|
*/
|
|
81
|
-
|
|
79
|
+
private stopPlaybackLoop;
|
|
82
80
|
/**
|
|
83
81
|
* 停止播放
|
|
84
82
|
*/
|
|
85
83
|
protected stopPlayback(): void;
|
|
86
84
|
/**
|
|
87
|
-
*
|
|
88
|
-
*/
|
|
89
|
-
protected startPlayback(): Promise<void>;
|
|
90
|
-
/**
|
|
91
|
-
* 注册内部事件监听器(仅供内部使用)
|
|
92
|
-
*/
|
|
93
|
-
private registerEventListener;
|
|
94
|
-
/**
|
|
95
|
-
* 触发内部事件(仅供内部使用)
|
|
96
|
-
*/
|
|
97
|
-
private emit;
|
|
98
|
-
/**
|
|
99
|
-
* 处理接收到的消息
|
|
85
|
+
* 清理播放器
|
|
100
86
|
*/
|
|
101
|
-
|
|
102
|
-
/**
|
|
103
|
-
* 处理动画消息(从服务器接收)
|
|
104
|
-
*/
|
|
105
|
-
private handleAnimationMessage;
|
|
106
|
-
/**
|
|
107
|
-
* 开始流式播放(准备播放器、添加音频数据、开始播放动画)
|
|
108
|
-
*/
|
|
109
|
-
private startStreamingPlayback;
|
|
87
|
+
protected cleanupPlayers(): void;
|
|
110
88
|
/**
|
|
111
|
-
*
|
|
112
|
-
* 注意:流式模式下,这个方法由 startStreamingPlayback() 调用
|
|
89
|
+
* 添加音频块到缓冲区
|
|
113
90
|
*/
|
|
114
|
-
private
|
|
91
|
+
private addAudioChunkToBuffer;
|
|
115
92
|
/**
|
|
116
|
-
*
|
|
117
|
-
* 注意:流式模式下不再需要此方法,保留用于兼容性
|
|
93
|
+
* 事件系统
|
|
118
94
|
*/
|
|
119
|
-
private
|
|
95
|
+
private registerEventListener;
|
|
120
96
|
/**
|
|
121
|
-
*
|
|
97
|
+
* 触发事件
|
|
122
98
|
*/
|
|
123
|
-
|
|
99
|
+
protected emit(event: string, data?: any): void;
|
|
124
100
|
}
|
|
125
101
|
//# sourceMappingURL=AvatarController.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
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;
|
|
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;IA8D3E;;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;IAmBb;;;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;IAcjB;;OAEG;IACH,KAAK,IAAI,IAAI;IA0Fb;;OAEG;YACW,8BAA8B;IAyE5C;;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"}
|
|
@@ -78,11 +78,6 @@ export declare class AvatarDownloader {
|
|
|
78
78
|
* Clear cached assets
|
|
79
79
|
*/
|
|
80
80
|
clear(): void;
|
|
81
|
-
/**
|
|
82
|
-
* Get Main App API Client (enjoi.spatialwalk.top)
|
|
83
|
-
* Used for: character list, auth, customization, etc.
|
|
84
|
-
*/
|
|
85
|
-
private getMainAppClient;
|
|
86
81
|
/**
|
|
87
82
|
* Get SPAvatarKit SDK API Client (api.spatialwalk.top)
|
|
88
83
|
* Used for: character details and resource URLs (public endpoints, no auth required)
|
|
@@ -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;
|
|
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,eAAe;IA+BvB;;;;;OAKG;IACG,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;CA0BpE"}
|
package/dist/core/AvatarKit.d.ts
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { Configuration } from '../types';
|
|
2
|
-
import { AvatarCoreAdapter } from '../wasm/avatarCoreAdapter';
|
|
3
2
|
export declare class AvatarKit {
|
|
4
3
|
private static _isInitialized;
|
|
4
|
+
private static _appId;
|
|
5
5
|
private static _configuration;
|
|
6
6
|
private static _sessionToken;
|
|
7
7
|
private static _userId;
|
|
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 中都带上
|
|
@@ -30,15 +31,11 @@ export declare class AvatarKit {
|
|
|
30
31
|
*/
|
|
31
32
|
static setUserId(userId: string): void;
|
|
32
33
|
static get isInitialized(): boolean;
|
|
34
|
+
static get appId(): string | null;
|
|
33
35
|
static get configuration(): Configuration | null;
|
|
34
36
|
static get sessionToken(): string | null;
|
|
35
37
|
static get userId(): string | null;
|
|
36
38
|
static get version(): string;
|
|
37
|
-
/**
|
|
38
|
-
* 获取AvatarCore实例(仅供 SDK 内部使用)
|
|
39
|
-
* @internal
|
|
40
|
-
*/
|
|
41
|
-
static getAvatarCore(): AvatarCoreAdapter | null;
|
|
42
39
|
/**
|
|
43
40
|
* 清理资源
|
|
44
41
|
*/
|
|
@@ -47,14 +44,5 @@ export declare class AvatarKit {
|
|
|
47
44
|
* 从远程配置接口获取SDK配置(已简化,逻辑移到 config/sdk-config-loader.ts)
|
|
48
45
|
*/
|
|
49
46
|
private static _fetchSdkConfig;
|
|
50
|
-
/**
|
|
51
|
-
* 获取环境配置(对齐 web 应用的 region-config)
|
|
52
|
-
*/
|
|
53
|
-
static getEnvironmentConfig(): {
|
|
54
|
-
sdkApiBaseUrl: string;
|
|
55
|
-
realtimeApiBaseUrl: string;
|
|
56
|
-
realtimeWsUrl: string;
|
|
57
|
-
driveningressWsUrl: string;
|
|
58
|
-
};
|
|
59
47
|
}
|
|
60
48
|
//# 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;
|
|
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;AAQ7C,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAC,cAAc,CAAQ;IACrC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAsB;IAC3C,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;IA6CnF;;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,KAAK,IAAI,MAAM,GAAG,IAAI,CAEhC;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;IAUD;;OAEG;IACH,MAAM,CAAC,OAAO,IAAI,IAAI;IA4BtB;;OAEG;mBACkB,eAAe;CAiFrC"}
|
|
@@ -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;
|
|
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,29 +1,25 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { 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
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
private readonly avatarController;
|
|
6
|
+
readonly playbackMode: AvatarPlaybackMode;
|
|
7
|
+
private readonly avatar;
|
|
8
8
|
private canvas;
|
|
9
9
|
private renderSystem;
|
|
10
10
|
private isInitialized;
|
|
11
11
|
private cameraConfig;
|
|
12
|
-
private
|
|
12
|
+
private renderingState;
|
|
13
13
|
private currentKeyframes;
|
|
14
14
|
private lastRenderedFrameIndex;
|
|
15
|
-
private realtimeStartTime;
|
|
16
15
|
private lastRealtimeProtoFrame;
|
|
17
|
-
private idleResumeIndexPending;
|
|
18
16
|
private idleAnimationLoopId;
|
|
19
17
|
private realtimeAnimationLoopId;
|
|
20
18
|
private resizeObserver;
|
|
21
19
|
private onWindowResize;
|
|
22
20
|
private transitionKeyframes;
|
|
23
|
-
private isTransitioning;
|
|
24
21
|
private transitionStartTime;
|
|
25
22
|
private readonly transitionDurationMs;
|
|
26
|
-
private endToIdleAfterTransition;
|
|
27
23
|
private cachedIdleFirstFrame;
|
|
28
24
|
private idleCurrentFrameIndex;
|
|
29
25
|
/**
|
|
@@ -44,17 +40,17 @@ export declare class AvatarView {
|
|
|
44
40
|
private getCachedIdleFirstFrame;
|
|
45
41
|
/**
|
|
46
42
|
* 构造函数
|
|
47
|
-
*
|
|
43
|
+
* 创建统一的 AvatarController,内部根据配置自动组合网络层
|
|
48
44
|
*/
|
|
49
|
-
constructor(avatar: Avatar,
|
|
45
|
+
constructor(avatar: Avatar, options?: AvatarViewOptions);
|
|
50
46
|
/**
|
|
51
|
-
*
|
|
47
|
+
* 获取控制器(公共接口)
|
|
52
48
|
*/
|
|
53
|
-
|
|
49
|
+
get controller(): AvatarController;
|
|
54
50
|
/**
|
|
55
|
-
*
|
|
51
|
+
* 创建canvas元素
|
|
56
52
|
*/
|
|
57
|
-
|
|
53
|
+
private createCanvas;
|
|
58
54
|
/**
|
|
59
55
|
* 初始化视图系统
|
|
60
56
|
*/
|
|
@@ -68,9 +64,13 @@ export declare class AvatarView {
|
|
|
68
64
|
*/
|
|
69
65
|
private getDefaultCameraConfig;
|
|
70
66
|
/**
|
|
71
|
-
*
|
|
67
|
+
* 根据资源解析最终的相机配置,优先使用角色设置,其次 camera.json
|
|
72
68
|
*/
|
|
73
|
-
private
|
|
69
|
+
private resolveCameraConfig;
|
|
70
|
+
/**
|
|
71
|
+
* 从角色设置中推导相机配置
|
|
72
|
+
*/
|
|
73
|
+
private deriveCameraConfigFromSettings;
|
|
74
74
|
/**
|
|
75
75
|
* 渲染第一帧
|
|
76
76
|
*/
|
|
@@ -96,48 +96,56 @@ export declare class AvatarView {
|
|
|
96
96
|
*/
|
|
97
97
|
private stopAllAnimationLoops;
|
|
98
98
|
/**
|
|
99
|
-
*
|
|
99
|
+
* 渲染实时帧(由播放层回调调用)
|
|
100
100
|
*/
|
|
101
101
|
private renderRealtimeFrame;
|
|
102
102
|
/**
|
|
103
|
-
*
|
|
103
|
+
* 过渡完成回调(通知播放层启动音频)
|
|
104
104
|
*/
|
|
105
|
-
private
|
|
105
|
+
private onTransitionComplete;
|
|
106
106
|
/**
|
|
107
|
-
*
|
|
107
|
+
* 状态转换方法
|
|
108
|
+
* 统一管理状态转换,确保状态一致性
|
|
108
109
|
*/
|
|
109
|
-
private
|
|
110
|
+
private setState;
|
|
110
111
|
/**
|
|
111
|
-
*
|
|
112
|
+
* 检查是否在实时播放状态(Speaking 或过渡到 Speaking)
|
|
112
113
|
*/
|
|
113
|
-
private
|
|
114
|
+
private get isRealtimePlaying();
|
|
114
115
|
/**
|
|
115
|
-
*
|
|
116
|
+
* 检查是否在过渡中
|
|
116
117
|
*/
|
|
117
|
-
private
|
|
118
|
+
private get isTransitioning();
|
|
118
119
|
/**
|
|
119
|
-
*
|
|
120
|
-
* 支持开发者来设置渲染数字人背景图
|
|
120
|
+
* 检查过渡结束后是否回到 Idle
|
|
121
121
|
*/
|
|
122
|
-
|
|
122
|
+
private get endToIdleAfterTransition();
|
|
123
123
|
/**
|
|
124
|
-
*
|
|
125
|
-
*
|
|
124
|
+
* 处理打断
|
|
125
|
+
* 打断时应该生成过渡动画,而不是直接跳回 Idle
|
|
126
126
|
*/
|
|
127
|
-
|
|
127
|
+
private handleInterrupt;
|
|
128
128
|
/**
|
|
129
|
-
*
|
|
130
|
-
* 关闭 avatarController 并清理所有相关资源
|
|
129
|
+
* 设置 AvatarController 事件监听器
|
|
131
130
|
*/
|
|
132
|
-
|
|
131
|
+
private setupControllerEventListeners;
|
|
132
|
+
/**
|
|
133
|
+
* 准备实时渲染(生成 Idle -> Speaking 过渡)
|
|
134
|
+
*/
|
|
135
|
+
private prepareRealtimeRendering;
|
|
133
136
|
/**
|
|
134
|
-
*
|
|
137
|
+
* 开始实时渲染循环
|
|
135
138
|
*/
|
|
136
|
-
|
|
139
|
+
private startRealtimeRendering;
|
|
137
140
|
/**
|
|
138
|
-
*
|
|
141
|
+
* 停止实时对话渲染
|
|
139
142
|
*/
|
|
140
|
-
|
|
143
|
+
private stopRealtimeRendering;
|
|
144
|
+
/**
|
|
145
|
+
* 清理视图资源
|
|
146
|
+
* 关闭 avatarController 并清理所有相关资源
|
|
147
|
+
*/
|
|
148
|
+
dispose(): void;
|
|
141
149
|
/**
|
|
142
150
|
* 处理尺寸变化:通知渲染系统更新视口与投影
|
|
143
151
|
*/
|
|
@@ -147,12 +155,5 @@ export declare class AvatarView {
|
|
|
147
155
|
* @returns 渲染性能统计数据,如果渲染系统未初始化则返回 null
|
|
148
156
|
*/
|
|
149
157
|
getPerformanceStats(): RenderPerformanceStats | null;
|
|
150
|
-
/**
|
|
151
|
-
* 将 CameraInfo 转换为 CameraConfig
|
|
152
|
-
*/
|
|
153
|
-
/**
|
|
154
|
-
* 设置 canvas 的 CSS 背景(与 app 对齐)
|
|
155
|
-
*/
|
|
156
|
-
private setCanvasBackground;
|
|
157
158
|
}
|
|
158
159
|
//# 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,
|
|
1
|
+
{"version":3,"file":"AvatarView.d.ts","sourceRoot":"","sources":["../../core/AvatarView.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAgB,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AACvF,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAI7C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAQtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAYrD,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAkB;IACnD,SAAgB,YAAY,EAAE,kBAAkB,CAAA;IAChD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAG/B,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,YAAY,CAA4B;IAChD,OAAO,CAAC,aAAa,CAAiB;IACtC,OAAO,CAAC,YAAY,CAA4B;IAGhD,OAAO,CAAC,cAAc,CAAsC;IAG5D,OAAO,CAAC,gBAAgB,CAAc;IACtC,OAAO,CAAC,sBAAsB,CAAa;IAC3C,OAAO,CAAC,sBAAsB,CAAqB;IAGnD,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,mBAAmB,CAAY;IACvC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAc;IACnD,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,OAAO,CAAC,EAAE,iBAAiB;IAgC7B;;OAEG;IACH,IAAI,UAAU,IAAI,gBAAgB,CAEjC;IAED;;OAEG;IACH,OAAO,CAAC,YAAY;IA6EpB;;OAEG;YACW,cAAc;IAmD5B;;OAEG;YACW,sBAAsB;IAwBpC;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAK9B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAgB3B;;OAEG;IACH,OAAO,CAAC,8BAA8B;IA2EtC;;OAEG;YACW,gBAAgB;IAsC9B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAsE9B;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAsFlC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAS7B;;OAEG;IACH,OAAO,CAAC,yBAAyB;IASjC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAK7B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAiB3B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAM5B;;;OAGG;IACH,OAAO,CAAC,QAAQ;IAwBhB;;OAEG;IACH,OAAO,KAAK,iBAAiB,GAG5B;IAED;;OAEG;IACH,OAAO,KAAK,eAAe,GAG1B;IAED;;OAEG;IACH,OAAO,KAAK,wBAAwB,GAEnC;IAED;;;OAGG;IACH,OAAO,CAAC,eAAe;IAoBvB;;OAEG;IACH,OAAO,CAAC,6BAA6B;IAqBrC;;OAEG;YACW,wBAAwB;IA4DtC;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAY9B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA8D7B;;;OAGG;IACH,OAAO,IAAI,IAAI;IAwFf;;OAEG;IACH,OAAO,CAAC,YAAY;IAMpB;;;OAGG;IACH,mBAAmB,IAAI,sBAAsB,GAAG,IAAI;CAarD"}
|
|
@@ -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;IAQlB;;OAEG;IACH,eAAe,IAAI,MAAM,GAAG,IAAI;IAIhC;;OAEG;IACH,UAAU,IAAI,IAAI;IAMlB;;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"}
|