@spatialwalk/avatarkit 1.0.0-beta.2 → 1.0.0-beta.21
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 +340 -0
- package/README.md +501 -194
- package/dist/StreamingAudioPlayer-DEXcuhRW.js +334 -0
- package/dist/StreamingAudioPlayer-DEXcuhRW.js.map +1 -0
- package/dist/animation/AnimationWebSocketClient.d.ts +7 -4
- package/dist/animation/AnimationWebSocketClient.d.ts.map +1 -1
- package/dist/audio/AnimationPlayer.d.ts +12 -0
- package/dist/audio/AnimationPlayer.d.ts.map +1 -1
- package/dist/audio/StreamingAudioPlayer.d.ts +11 -0
- package/dist/audio/StreamingAudioPlayer.d.ts.map +1 -1
- package/dist/avatar_core_wasm-BPIbbUx_.js +1664 -0
- package/dist/avatar_core_wasm-BPIbbUx_.js.map +1 -0
- 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/config/sdk-config-loader.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 +112 -65
- package/dist/core/AvatarController.d.ts.map +1 -1
- package/dist/core/AvatarDownloader.d.ts +1 -20
- package/dist/core/AvatarDownloader.d.ts.map +1 -1
- package/dist/core/AvatarKit.d.ts +8 -15
- package/dist/core/AvatarKit.d.ts.map +1 -1
- package/dist/core/AvatarManager.d.ts +1 -4
- package/dist/core/AvatarManager.d.ts.map +1 -1
- package/dist/core/AvatarView.d.ts +65 -53
- package/dist/core/AvatarView.d.ts.map +1 -1
- package/dist/core/NetworkLayer.d.ts +8 -0
- package/dist/core/NetworkLayer.d.ts.map +1 -0
- package/dist/index-ChKhyUK4.js +6437 -0
- package/dist/index-ChKhyUK4.js.map +1 -0
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -15
- package/dist/renderer/RenderSystem.d.ts +9 -76
- package/dist/renderer/RenderSystem.d.ts.map +1 -1
- package/dist/renderer/webgl/reorderData.d.ts.map +1 -1
- package/dist/renderer/webgl/webglRenderer.d.ts.map +1 -1
- package/dist/types/character.d.ts +0 -11
- package/dist/types/character.d.ts.map +1 -1
- package/dist/types/index.d.ts +18 -6
- 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/{reqId.d.ts → conversationId.d.ts} +6 -6
- package/dist/utils/conversationId.d.ts.map +1 -0
- package/dist/utils/logger.d.ts +2 -10
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/vanilla/vite.config.d.ts +3 -0
- package/dist/vanilla/vite.config.d.ts.map +1 -0
- package/dist/wasm/avatarCoreAdapter.d.ts +58 -9
- package/dist/wasm/avatarCoreAdapter.d.ts.map +1 -1
- package/dist/wasm/avatarCoreMemory.d.ts +5 -1
- package/dist/wasm/avatarCoreMemory.d.ts.map +1 -1
- package/package.json +10 -4
- package/dist/StreamingAudioPlayer-CMEiGwxE.js +0 -288
- package/dist/StreamingAudioPlayer-CMEiGwxE.js.map +0 -1
- package/dist/avatar_core_wasm-DmkU6dYn.js +0 -1666
- package/dist/avatar_core_wasm-DmkU6dYn.js.map +0 -1
- package/dist/index-CNhquYUE.js +0 -9712
- package/dist/index-CNhquYUE.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/reqId.d.ts.map +0 -1
|
@@ -1,125 +1,172 @@
|
|
|
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;
|
|
18
|
+
private currentConversationId;
|
|
19
|
+
private reqEnd;
|
|
16
20
|
onConnectionState: ((state: ConnectionState) => void) | null;
|
|
17
21
|
onAvatarState: ((state: AvatarState) => void) | null;
|
|
18
22
|
onError: ((error: Error) => void) | null;
|
|
19
23
|
private eventListeners;
|
|
20
|
-
private
|
|
21
|
-
private
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
24
|
+
private renderCallback?;
|
|
25
|
+
private transitionCompleteCallback?;
|
|
26
|
+
private characterHandle;
|
|
27
|
+
private playbackLoopId;
|
|
28
|
+
private lastRenderedFrameIndex;
|
|
29
|
+
private keyframesOffset;
|
|
30
|
+
private readonly MAX_KEYFRAMES;
|
|
31
|
+
private readonly KEYFRAMES_CLEANUP_THRESHOLD;
|
|
32
|
+
private readonly MAX_PENDING_AUDIO_CHUNKS;
|
|
33
|
+
private isAudioOnlyMode;
|
|
34
|
+
constructor(avatar: Avatar, options?: {
|
|
35
|
+
playbackMode?: AvatarPlaybackMode;
|
|
36
|
+
});
|
|
37
|
+
/**
|
|
38
|
+
* Get current conversation ID
|
|
39
|
+
* Returns the current conversation ID for the active audio session
|
|
40
|
+
* @returns Current conversation ID, or null if no active session
|
|
41
|
+
*/
|
|
42
|
+
getCurrentConversationId(): string | null;
|
|
43
|
+
/**
|
|
44
|
+
* Start service (network mode only)
|
|
25
45
|
*/
|
|
26
46
|
start(): Promise<void>;
|
|
27
47
|
/**
|
|
28
|
-
*
|
|
48
|
+
* Send audio to server (network mode only)
|
|
49
|
+
* Also cache to data layer for playback
|
|
50
|
+
* @returns conversationId - Conversation ID for this audio session
|
|
29
51
|
*/
|
|
30
|
-
send(audioData: ArrayBuffer, end?: boolean):
|
|
52
|
+
send(audioData: ArrayBuffer, end?: boolean): string | null;
|
|
31
53
|
/**
|
|
32
|
-
*
|
|
54
|
+
* Close service (network mode only)
|
|
33
55
|
*/
|
|
34
|
-
|
|
56
|
+
close(): void;
|
|
35
57
|
/**
|
|
36
|
-
*
|
|
58
|
+
* Playback existing audio and animation data (external data mode)
|
|
59
|
+
* Starts a new conversation by generating a new conversation ID and interrupting any existing conversation
|
|
60
|
+
* @param initialAudioChunks - Existing audio chunks to playback
|
|
61
|
+
* @param initialKeyframes - Existing animation keyframes to playback
|
|
62
|
+
* @returns conversationId - New conversation ID for this conversation session
|
|
37
63
|
*/
|
|
38
|
-
|
|
64
|
+
playback(initialAudioChunks?: Array<{
|
|
65
|
+
data: Uint8Array;
|
|
66
|
+
isLast: boolean;
|
|
67
|
+
}>, initialKeyframes?: Flame[]): Promise<string>;
|
|
39
68
|
/**
|
|
40
|
-
*
|
|
69
|
+
* Send audio data (external data mode)
|
|
70
|
+
* Stream additional audio data after playback()
|
|
71
|
+
* @returns conversationId - Conversation ID for this audio session
|
|
41
72
|
*/
|
|
42
|
-
|
|
73
|
+
yieldAudioData(data: Uint8Array, isLast?: boolean): string | null;
|
|
43
74
|
/**
|
|
44
|
-
*
|
|
75
|
+
* Send animation keyframes (external data mode or network mode)
|
|
76
|
+
* Stream additional animation data after playback()
|
|
77
|
+
* @param keyframes - Animation keyframes to send
|
|
78
|
+
* @param conversationId - Conversation ID (required). If conversationId doesn't match current conversationId, keyframes will be discarded.
|
|
79
|
+
* Use getCurrentConversationId() to get the current conversationId.
|
|
45
80
|
*/
|
|
46
|
-
|
|
47
|
-
set mute(value: boolean);
|
|
81
|
+
yieldFramesData(keyframes: Flame[], conversationId: string): void;
|
|
48
82
|
/**
|
|
49
|
-
*
|
|
83
|
+
* Pause playback (can be resumed later)
|
|
84
|
+
* Pause audio playback and stop render loop, but preserve all state (keyframes, audio buffers, etc.)
|
|
50
85
|
*/
|
|
51
|
-
|
|
86
|
+
pause(): void;
|
|
52
87
|
/**
|
|
53
|
-
*
|
|
54
|
-
*
|
|
88
|
+
* Resume playback (from paused state)
|
|
89
|
+
* Resume audio playback and restart render loop
|
|
90
|
+
* Animation will continue from paused frame (because animation time base comes from audio, will auto-sync)
|
|
55
91
|
*/
|
|
56
|
-
|
|
92
|
+
resume(): Promise<void>;
|
|
57
93
|
/**
|
|
58
|
-
*
|
|
94
|
+
* Interrupt current playback
|
|
59
95
|
*/
|
|
60
|
-
|
|
96
|
+
interrupt(): void;
|
|
61
97
|
/**
|
|
62
|
-
*
|
|
98
|
+
* Clear all data and resources
|
|
63
99
|
*/
|
|
64
|
-
|
|
100
|
+
clear(): void;
|
|
65
101
|
/**
|
|
66
|
-
*
|
|
67
|
-
* @
|
|
102
|
+
* Generate new conversation ID and log conversation started event
|
|
103
|
+
* @private
|
|
68
104
|
*/
|
|
69
|
-
|
|
70
|
-
onKeyframesUpdate?: (keyframes: Flame[]) => void;
|
|
71
|
-
onStartRendering?: () => void;
|
|
72
|
-
onStopRendering?: () => void;
|
|
73
|
-
}): void;
|
|
105
|
+
private generateAndLogNewConversationId;
|
|
74
106
|
/**
|
|
75
|
-
*
|
|
107
|
+
* Clear playback data (keyframes, audio chunks, and playback state)
|
|
108
|
+
* @private
|
|
76
109
|
*/
|
|
77
|
-
|
|
110
|
+
private clearPlaybackData;
|
|
78
111
|
/**
|
|
79
|
-
*
|
|
112
|
+
* Reset conversation ID state (for both network and external modes)
|
|
113
|
+
* @private
|
|
80
114
|
*/
|
|
81
|
-
|
|
115
|
+
private resetConversationIdState;
|
|
82
116
|
/**
|
|
83
|
-
*
|
|
117
|
+
* Get effective conversation ID (handles both network and external modes)
|
|
118
|
+
* @private
|
|
84
119
|
*/
|
|
85
|
-
|
|
120
|
+
private getEffectiveConversationId;
|
|
86
121
|
/**
|
|
87
|
-
*
|
|
122
|
+
* Start streaming playback (internal implementation)
|
|
88
123
|
*/
|
|
89
|
-
|
|
124
|
+
private startStreamingPlaybackInternal;
|
|
90
125
|
/**
|
|
91
|
-
*
|
|
126
|
+
* Playback loop: Calculate animation frame based on audio time, notify render layer to render
|
|
92
127
|
*/
|
|
93
|
-
private
|
|
128
|
+
private startPlaybackLoop;
|
|
94
129
|
/**
|
|
95
|
-
*
|
|
130
|
+
* Stop playback loop
|
|
96
131
|
*/
|
|
97
|
-
private
|
|
132
|
+
private stopPlaybackLoop;
|
|
98
133
|
/**
|
|
99
|
-
*
|
|
134
|
+
* 启用音频独立播放模式(当服务器错误或超时时调用)
|
|
135
|
+
* 此模式下,音频会独立播放,不依赖动画数据
|
|
136
|
+
* 一旦启用,本次会话后续的动画数据将被忽略
|
|
137
|
+
* @private
|
|
100
138
|
*/
|
|
101
|
-
private
|
|
139
|
+
private enableAudioOnlyMode;
|
|
102
140
|
/**
|
|
103
|
-
*
|
|
141
|
+
* 音频独立播放(完全独立的逻辑,不影响正常播放流程)
|
|
142
|
+
* @private
|
|
104
143
|
*/
|
|
105
|
-
private
|
|
144
|
+
private startAudioOnlyPlayback;
|
|
106
145
|
/**
|
|
107
|
-
*
|
|
146
|
+
* 音频监控循环(仅用于音频独立模式)
|
|
147
|
+
* 只检测音频是否结束,不进行动画渲染
|
|
148
|
+
* @private
|
|
108
149
|
*/
|
|
109
|
-
private
|
|
150
|
+
private startAudioMonitoringLoop;
|
|
110
151
|
/**
|
|
111
|
-
*
|
|
112
|
-
* 注意:流式模式下,这个方法由 startStreamingPlayback() 调用
|
|
152
|
+
* Stop playback
|
|
113
153
|
*/
|
|
114
|
-
|
|
154
|
+
protected stopPlayback(): void;
|
|
115
155
|
/**
|
|
116
|
-
*
|
|
117
|
-
* 注意:流式模式下不再需要此方法,保留用于兼容性
|
|
156
|
+
* Clean up players
|
|
118
157
|
*/
|
|
119
|
-
|
|
158
|
+
protected cleanupPlayers(): void;
|
|
159
|
+
/**
|
|
160
|
+
* Add audio chunk to buffer
|
|
161
|
+
*/
|
|
162
|
+
private addAudioChunkToBuffer;
|
|
163
|
+
/**
|
|
164
|
+
* Event system
|
|
165
|
+
*/
|
|
166
|
+
private registerEventListener;
|
|
120
167
|
/**
|
|
121
|
-
*
|
|
168
|
+
* Emit event
|
|
122
169
|
*/
|
|
123
|
-
|
|
170
|
+
protected emit(event: string, data?: any): void;
|
|
124
171
|
}
|
|
125
172
|
//# 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":"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"}
|
|
@@ -29,8 +29,6 @@ interface CharacterDataResult {
|
|
|
29
29
|
shape: ArrayBuffer;
|
|
30
30
|
pointCloud: ArrayBuffer;
|
|
31
31
|
idleAnimation?: ArrayBuffer;
|
|
32
|
-
monoAnimation?: ArrayBuffer;
|
|
33
|
-
monoAudioUrl?: string;
|
|
34
32
|
}
|
|
35
33
|
export interface PreloadResult {
|
|
36
34
|
templateResources: TemplateResources;
|
|
@@ -40,18 +38,12 @@ export interface PreloadResult {
|
|
|
40
38
|
}
|
|
41
39
|
export declare class AvatarDownloader {
|
|
42
40
|
private baseAssetsPath;
|
|
43
|
-
private characterAssets;
|
|
44
41
|
constructor(baseAssetsPath?: string);
|
|
45
42
|
/**
|
|
46
43
|
* Load template resources from CharacterMeta flame CDN URLs
|
|
47
44
|
* Falls back to global CDN config if not provided by API
|
|
48
45
|
*/
|
|
49
46
|
loadTemplateResources(flameResources?: FlameResources, progressCallback?: ProgressCallback | null): Promise<TemplateResources>;
|
|
50
|
-
/**
|
|
51
|
-
* Load global FLAME template resources from CDN
|
|
52
|
-
* Uses centralized FLAME CDN config (shared across all characters)
|
|
53
|
-
*/
|
|
54
|
-
private loadGlobalFlameResources;
|
|
55
47
|
/**
|
|
56
48
|
* Load camera settings from CharacterMeta (optional)
|
|
57
49
|
*/
|
|
@@ -60,29 +52,18 @@ export declare class AvatarDownloader {
|
|
|
60
52
|
* Load character data from CharacterMeta (iOS compatible)
|
|
61
53
|
*/
|
|
62
54
|
loadCharacterData(characterMeta: CharacterMeta, options?: {
|
|
63
|
-
loadMonologue?: boolean;
|
|
64
55
|
progressCallback?: ProgressCallback | null;
|
|
65
56
|
}): Promise<CharacterDataResult>;
|
|
66
57
|
/**
|
|
67
58
|
* Preload all resources (template + character data + camera info + settings)
|
|
68
59
|
*/
|
|
69
60
|
preloadResources(characterMeta: CharacterMeta, options?: {
|
|
70
|
-
loadMonologue?: boolean;
|
|
71
61
|
progressCallback?: ProgressCallback | null;
|
|
72
62
|
}): Promise<PreloadResult>;
|
|
73
63
|
/**
|
|
74
|
-
*
|
|
75
|
-
*/
|
|
76
|
-
getCharacterAsset(key: string): ArrayBuffer | undefined;
|
|
77
|
-
/**
|
|
78
|
-
* Clear cached assets
|
|
64
|
+
* Clear cached assets (no-op, kept for API compatibility)
|
|
79
65
|
*/
|
|
80
66
|
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
67
|
/**
|
|
87
68
|
* Get SPAvatarKit SDK API Client (api.spatialwalk.top)
|
|
88
69
|
* 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;
|
|
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;CAC5B;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;AAuED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,cAAc,CAAQ;gBAElB,cAAc,SAAM;IAIhC;;;OAGG;IACG,qBAAqB,CACzB,cAAc,CAAC,EAAE,cAAc,EAC/B,gBAAgB,GAAE,gBAAgB,GAAG,IAAW,GAC/C,OAAO,CAAC,iBAAiB,CAAC;IAyI7B;;OAEG;IACG,kBAAkB,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC;IAwClG;;OAEG;IACG,iBAAiB,CACrB,aAAa,EAAE,aAAa,EAC5B,OAAO,CAAC,EAAE;QAAE,gBAAgB,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAA;KAAE,GACvD,OAAO,CAAC,mBAAmB,CAAC;IA6F/B;;OAEG;IACG,gBAAgB,CACpB,aAAa,EAAE,aAAa,EAC5B,OAAO,CAAC,EAAE;QACR,gBAAgB,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAA;KAC3C,GACA,OAAO,CAAC,aAAa,CAAC;IAiCzB;;OAEG;IACH,KAAK;IAML;;;OAGG;IACH,OAAO,CAAC,eAAe;IAgDvB;;;;;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 中都带上
|
|
@@ -18,6 +19,11 @@ export declare class AvatarKit {
|
|
|
18
19
|
* 初始化WASM模块(跟随整个SDK生命周期)
|
|
19
20
|
*/
|
|
20
21
|
private static initializeWASMModule;
|
|
22
|
+
/**
|
|
23
|
+
* 初始化模板资源(在SDK初始化时加载)
|
|
24
|
+
* 失败时直接抛出错误,阻止SDK初始化
|
|
25
|
+
*/
|
|
26
|
+
private static initializeTemplateResources;
|
|
21
27
|
/**
|
|
22
28
|
* 设置 sessionToken
|
|
23
29
|
* 开发者 Client -> 开发者 Server -> SP Server -> return sessionToken(最长一小时有效时间)
|
|
@@ -30,15 +36,11 @@ export declare class AvatarKit {
|
|
|
30
36
|
*/
|
|
31
37
|
static setUserId(userId: string): void;
|
|
32
38
|
static get isInitialized(): boolean;
|
|
39
|
+
static get appId(): string | null;
|
|
33
40
|
static get configuration(): Configuration | null;
|
|
34
41
|
static get sessionToken(): string | null;
|
|
35
42
|
static get userId(): string | null;
|
|
36
43
|
static get version(): string;
|
|
37
|
-
/**
|
|
38
|
-
* 获取AvatarCore实例(仅供 SDK 内部使用)
|
|
39
|
-
* @internal
|
|
40
|
-
*/
|
|
41
|
-
static getAvatarCore(): AvatarCoreAdapter | null;
|
|
42
44
|
/**
|
|
43
45
|
* 清理资源
|
|
44
46
|
*/
|
|
@@ -47,14 +49,5 @@ export declare class AvatarKit {
|
|
|
47
49
|
* 从远程配置接口获取SDK配置(已简化,逻辑移到 config/sdk-config-loader.ts)
|
|
48
50
|
*/
|
|
49
51
|
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
52
|
}
|
|
60
53
|
//# 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;IAgDnF;;OAEG;mBACkB,oBAAoB;IA2CzC;;;OAGG;mBACkB,2BAA2B;IAkChD;;;;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"}
|
|
@@ -3,7 +3,6 @@ import { Avatar } from './Avatar';
|
|
|
3
3
|
export declare class AvatarManager {
|
|
4
4
|
private static _instance;
|
|
5
5
|
private avatarDownloader;
|
|
6
|
-
private _templateInitialized;
|
|
7
6
|
/**
|
|
8
7
|
* 通过全局单例来访问
|
|
9
8
|
*/
|
|
@@ -15,9 +14,7 @@ export declare class AvatarManager {
|
|
|
15
14
|
* @param options 加载选项
|
|
16
15
|
* @returns Promise<Avatar>
|
|
17
16
|
*/
|
|
18
|
-
load(id: string, onProgress?: (progress: LoadProgressInfo) => void
|
|
19
|
-
enableMonologue?: boolean;
|
|
20
|
-
}): Promise<Avatar>;
|
|
17
|
+
load(id: string, onProgress?: (progress: LoadProgressInfo) => void): Promise<Avatar>;
|
|
21
18
|
/**
|
|
22
19
|
* 清理资源加载器缓存
|
|
23
20
|
*/
|
|
@@ -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;
|
|
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;IAExD;;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,GAChD,OAAO,CAAC,MAAM,CAAC;IA6DlB;;OAEG;IACH,UAAU,IAAI,IAAI;CAKnB"}
|
|
@@ -1,39 +1,37 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { 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
|
+
readonly ready: Promise<void>;
|
|
8
9
|
private canvas;
|
|
9
10
|
private renderSystem;
|
|
10
11
|
private isInitialized;
|
|
11
12
|
private cameraConfig;
|
|
12
|
-
private
|
|
13
|
+
private renderingState;
|
|
13
14
|
private currentKeyframes;
|
|
14
15
|
private lastRenderedFrameIndex;
|
|
15
|
-
private realtimeStartTime;
|
|
16
16
|
private lastRealtimeProtoFrame;
|
|
17
|
-
private idleResumeIndexPending;
|
|
18
17
|
private idleAnimationLoopId;
|
|
19
18
|
private realtimeAnimationLoopId;
|
|
20
19
|
private resizeObserver;
|
|
21
20
|
private onWindowResize;
|
|
21
|
+
private frameCount;
|
|
22
|
+
private lastFpsUpdate;
|
|
23
|
+
private currentFPS;
|
|
22
24
|
private transitionKeyframes;
|
|
23
|
-
private isTransitioning;
|
|
24
25
|
private transitionStartTime;
|
|
25
26
|
private readonly transitionDurationMs;
|
|
26
|
-
private endToIdleAfterTransition;
|
|
27
27
|
private cachedIdleFirstFrame;
|
|
28
28
|
private idleCurrentFrameIndex;
|
|
29
|
+
private characterHandle;
|
|
30
|
+
private characterId;
|
|
29
31
|
/**
|
|
30
32
|
* 对齐两端 Flame 维度:标量统一长度,expression 取最大长度并零填充
|
|
31
33
|
*/
|
|
32
34
|
private alignFlamePair;
|
|
33
|
-
/**
|
|
34
|
-
* 判断是否为空 Flame(用于跳过 isLast=true 的哨兵帧)
|
|
35
|
-
*/
|
|
36
|
-
private isEmptyFlame;
|
|
37
35
|
/**
|
|
38
36
|
* 生成并对齐过渡帧,确保首尾帧与起止帧完全一致
|
|
39
37
|
*/
|
|
@@ -44,17 +42,23 @@ export declare class AvatarView {
|
|
|
44
42
|
private getCachedIdleFirstFrame;
|
|
45
43
|
/**
|
|
46
44
|
* 构造函数
|
|
47
|
-
*
|
|
45
|
+
* 创建统一的 AvatarController,内部根据配置自动组合网络层
|
|
48
46
|
*/
|
|
49
|
-
constructor(avatar: Avatar, canvasContainer?: HTMLElement);
|
|
50
47
|
/**
|
|
51
|
-
*
|
|
48
|
+
* 构造函数
|
|
49
|
+
* 创建统一的 AvatarController,内部根据配置自动组合网络层
|
|
50
|
+
* @param avatar - Avatar 实例
|
|
51
|
+
* @param container - Canvas 容器元素(必选)
|
|
52
52
|
*/
|
|
53
|
-
|
|
53
|
+
constructor(avatar: Avatar, container: HTMLElement);
|
|
54
54
|
/**
|
|
55
|
-
*
|
|
55
|
+
* 获取控制器(公共接口)
|
|
56
56
|
*/
|
|
57
|
-
|
|
57
|
+
get controller(): AvatarController;
|
|
58
|
+
/**
|
|
59
|
+
* 创建canvas元素
|
|
60
|
+
*/
|
|
61
|
+
private createCanvas;
|
|
58
62
|
/**
|
|
59
63
|
* 初始化视图系统
|
|
60
64
|
*/
|
|
@@ -68,13 +72,25 @@ export declare class AvatarView {
|
|
|
68
72
|
*/
|
|
69
73
|
private getDefaultCameraConfig;
|
|
70
74
|
/**
|
|
71
|
-
*
|
|
75
|
+
* 根据资源解析最终的相机配置,优先使用角色设置,其次 camera.json
|
|
72
76
|
*/
|
|
73
|
-
private
|
|
77
|
+
private resolveCameraConfig;
|
|
78
|
+
/**
|
|
79
|
+
* 从角色设置中推导相机配置
|
|
80
|
+
*/
|
|
81
|
+
private deriveCameraConfigFromSettings;
|
|
74
82
|
/**
|
|
75
83
|
* 渲染第一帧
|
|
76
84
|
*/
|
|
77
85
|
private renderFirstFrame;
|
|
86
|
+
/**
|
|
87
|
+
* 更新 FPS 统计(在 requestAnimationFrame 回调中调用)
|
|
88
|
+
*/
|
|
89
|
+
private updateFPS;
|
|
90
|
+
/**
|
|
91
|
+
* 初始化 FPS 计算
|
|
92
|
+
*/
|
|
93
|
+
private initFPS;
|
|
78
94
|
/**
|
|
79
95
|
* 开始idle动画循环
|
|
80
96
|
*/
|
|
@@ -96,63 +112,59 @@ export declare class AvatarView {
|
|
|
96
112
|
*/
|
|
97
113
|
private stopAllAnimationLoops;
|
|
98
114
|
/**
|
|
99
|
-
*
|
|
115
|
+
* 渲染实时帧(由播放层回调调用)
|
|
100
116
|
*/
|
|
101
117
|
private renderRealtimeFrame;
|
|
102
118
|
/**
|
|
103
|
-
*
|
|
119
|
+
* 过渡完成回调(通知播放层启动音频)
|
|
104
120
|
*/
|
|
105
|
-
private
|
|
121
|
+
private onTransitionComplete;
|
|
106
122
|
/**
|
|
107
|
-
*
|
|
123
|
+
* 状态转换方法
|
|
124
|
+
* 统一管理状态转换,确保状态一致性
|
|
108
125
|
*/
|
|
109
|
-
private
|
|
126
|
+
private setState;
|
|
110
127
|
/**
|
|
111
|
-
*
|
|
128
|
+
* 检查是否在实时播放状态(Speaking 或过渡到 Speaking)
|
|
112
129
|
*/
|
|
113
|
-
private
|
|
130
|
+
private get isRealtimePlaying();
|
|
114
131
|
/**
|
|
115
|
-
*
|
|
132
|
+
* 检查是否在过渡中
|
|
116
133
|
*/
|
|
117
|
-
private
|
|
134
|
+
private get isTransitioning();
|
|
118
135
|
/**
|
|
119
|
-
*
|
|
120
|
-
* 支持开发者来设置渲染数字人背景图
|
|
136
|
+
* 检查过渡结束后是否回到 Idle
|
|
121
137
|
*/
|
|
122
|
-
|
|
138
|
+
private get endToIdleAfterTransition();
|
|
123
139
|
/**
|
|
124
|
-
*
|
|
125
|
-
*
|
|
140
|
+
* 处理打断
|
|
141
|
+
* 打断时应该生成过渡动画,而不是直接跳回 Idle
|
|
126
142
|
*/
|
|
127
|
-
|
|
143
|
+
private handleInterrupt;
|
|
128
144
|
/**
|
|
129
|
-
*
|
|
130
|
-
* 关闭 avatarController 并清理所有相关资源
|
|
131
|
-
*/
|
|
132
|
-
dispose(): void;
|
|
133
|
-
/**
|
|
134
|
-
* 获取相机配置
|
|
145
|
+
* 设置 AvatarController 事件监听器
|
|
135
146
|
*/
|
|
136
|
-
|
|
147
|
+
private setupControllerEventListeners;
|
|
137
148
|
/**
|
|
138
|
-
*
|
|
149
|
+
* 准备实时渲染(生成 Idle -> Speaking 过渡)
|
|
139
150
|
*/
|
|
140
|
-
|
|
151
|
+
private prepareRealtimeRendering;
|
|
141
152
|
/**
|
|
142
|
-
*
|
|
153
|
+
* 开始实时渲染循环
|
|
143
154
|
*/
|
|
144
|
-
private
|
|
155
|
+
private startRealtimeRendering;
|
|
145
156
|
/**
|
|
146
|
-
*
|
|
147
|
-
* @returns 渲染性能统计数据,如果渲染系统未初始化则返回 null
|
|
157
|
+
* 停止实时对话渲染
|
|
148
158
|
*/
|
|
149
|
-
|
|
159
|
+
private stopRealtimeRendering;
|
|
150
160
|
/**
|
|
151
|
-
*
|
|
161
|
+
* 清理视图资源
|
|
162
|
+
* 关闭 avatarController 并清理所有相关资源
|
|
152
163
|
*/
|
|
164
|
+
dispose(): void;
|
|
153
165
|
/**
|
|
154
|
-
*
|
|
166
|
+
* 处理尺寸变化:通知渲染系统更新视口与投影
|
|
155
167
|
*/
|
|
156
|
-
private
|
|
168
|
+
private handleResize;
|
|
157
169
|
}
|
|
158
170
|
//# sourceMappingURL=AvatarView.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AvatarView.d.ts","sourceRoot":"","sources":["../../core/AvatarView.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"AvatarView.d.ts","sourceRoot":"","sources":["../../core/AvatarView.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* NetworkLayer - Network communication layer
|
|
3
|
+
* Responsible for WebSocket connections, protocol handling, and data retrieval
|
|
4
|
+
* Automatically calls AvatarController (playback layer) interfaces after obtaining data
|
|
5
|
+
* @internal Not part of public API
|
|
6
|
+
*/
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=NetworkLayer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NetworkLayer.d.ts","sourceRoot":"","sources":["../../core/NetworkLayer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|