@xmov/avatar 2.4.0 → 2.5.0-alpha.1

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 (157) hide show
  1. package/README.md +34 -6
  2. package/package-dist/agent/avatar.cjs +1 -0
  3. package/package-dist/agent/avatar.modern.js +1 -0
  4. package/package-dist/agent/avatar.module.js +1 -0
  5. package/package-dist/agent/avatar.umd.js +1 -0
  6. package/package-dist/agent/index.d.ts +42 -0
  7. package/{dist/agent/types.d.ts → package-dist/agent/public-types.d.ts} +115 -116
  8. package/package-dist/index.cjs +3 -0
  9. package/package-dist/index.d.ts +34 -0
  10. package/package-dist/index.modern.js +1 -0
  11. package/package-dist/index.module.js +1 -0
  12. package/package-dist/index.umd.js +14 -0
  13. package/package-dist/public-types.d.ts +205 -0
  14. package/package.json +41 -33
  15. package/dist/agent/avatar.cjs +0 -1
  16. package/dist/agent/avatar.modern.js +0 -1
  17. package/dist/agent/avatar.module.js +0 -1
  18. package/dist/agent/avatar.umd.js +0 -1
  19. package/dist/agent/index.d.ts +0 -137
  20. package/dist/baseRender/AudioRenderer.d.ts +0 -46
  21. package/dist/baseRender/AudioWorklet.d.ts +0 -78
  22. package/dist/baseRender/AvatarRenderer.d.ts +0 -225
  23. package/dist/baseRender/MSEAudioPlayer.d.ts +0 -51
  24. package/dist/baseRender/UIRenderer.d.ts +0 -39
  25. package/dist/baseRender/pcm-audio-processor.d.ts +0 -63
  26. package/dist/control/APIForwarder.d.ts +0 -23
  27. package/dist/control/DataCacheQueue.d.ts +0 -69
  28. package/dist/control/EventDispatcher.d.ts +0 -35
  29. package/dist/control/RenderScheduler.d.ts +0 -171
  30. package/dist/control/SaveAndDownload.d.ts +0 -14
  31. package/dist/control/StreamingClient.d.ts +0 -33
  32. package/dist/control/VideoPlayer.d.ts +0 -47
  33. package/dist/control/ttsa.d.ts +0 -125
  34. package/dist/encoding/media-recorder-encoder.d.ts +0 -33
  35. package/dist/encoding/pcm-webm-encoder.d.ts +0 -13
  36. package/dist/encoding/webcodec-opus-encoder.d.ts +0 -41
  37. package/dist/encoding/webm-muxer.d.ts +0 -90
  38. package/dist/index.cjs +0 -2
  39. package/dist/index.cjs.map +0 -1
  40. package/dist/index.d.ts +0 -251
  41. package/dist/index.modern.js +0 -2
  42. package/dist/index.modern.js.map +0 -1
  43. package/dist/index.module.js +0 -2
  44. package/dist/index.module.js.map +0 -1
  45. package/dist/index.umd.js +0 -2
  46. package/dist/index.umd.js.map +0 -1
  47. package/dist/modules/Composition.d.ts +0 -28
  48. package/dist/modules/ResourceManager.d.ts +0 -299
  49. package/dist/modules/TrackRenderer/base-track.d.ts +0 -4
  50. package/dist/modules/TrackRenderer/index.d.ts +0 -12
  51. package/dist/modules/TrackRenderer/render-implements.d.ts +0 -19
  52. package/dist/modules/TrackRenderer/track-pic.d.ts +0 -8
  53. package/dist/modules/TrackRenderer/track-subtitle.d.ts +0 -8
  54. package/dist/modules/cache-manager.d.ts +0 -5
  55. package/dist/modules/decoder.d.ts +0 -84
  56. package/dist/modules/error-handle.d.ts +0 -17
  57. package/dist/modules/network.d.ts +0 -21
  58. package/dist/modules/sentry-reporter.d.ts +0 -58
  59. package/dist/proto/face_data_pb.d.ts +0 -0
  60. package/dist/types/capability.d.ts +0 -15
  61. package/dist/types/error.d.ts +0 -70
  62. package/dist/types/event.d.ts +0 -25
  63. package/dist/types/frame-data.d.ts +0 -107
  64. package/dist/types/index.d.ts +0 -196
  65. package/dist/types/render.d.ts +0 -18
  66. package/dist/utils/DataInterface.d.ts +0 -113
  67. package/dist/utils/GLDevice.d.ts +0 -46
  68. package/dist/utils/GLPipeline.d.ts +0 -84
  69. package/dist/utils/GLPipelineDebugTools.d.ts +0 -5
  70. package/dist/utils/Math.d.ts +0 -21
  71. package/dist/utils/__tests__/capability-checker.test.d.ts +0 -1
  72. package/dist/utils/audio-session.d.ts +0 -11
  73. package/dist/utils/audio.d.ts +0 -1
  74. package/dist/utils/capability-checker.d.ts +0 -28
  75. package/dist/utils/encodeToken.d.ts +0 -14
  76. package/dist/utils/face.d.ts +0 -1
  77. package/dist/utils/float32-decoder.d.ts +0 -26
  78. package/dist/utils/fpsTracker.d.ts +0 -27
  79. package/dist/utils/index.d.ts +0 -22
  80. package/dist/utils/logger.d.ts +0 -9
  81. package/dist/utils/media-recorder-timestamp.d.ts +0 -15
  82. package/dist/utils/pcmAnalyzer.d.ts +0 -40
  83. package/dist/utils/perfermance.d.ts +0 -15
  84. package/dist/utils/request.d.ts +0 -20
  85. package/dist/utils/requestAnimateFrames.d.ts +0 -31
  86. package/dist/utils/time.d.ts +0 -9
  87. package/dist/utils/video-probe-asset.d.ts +0 -28
  88. package/dist/view/DebugOverlay.d.ts +0 -54
  89. package/dist/worker/streaming-video.d.ts +0 -1
  90. package/src/baseRender/AudioRenderer.ts +0 -328
  91. package/src/baseRender/AudioWorklet.ts +0 -776
  92. package/src/baseRender/AvatarRenderer.ts +0 -1550
  93. package/src/baseRender/MSEAudioPlayer.ts +0 -254
  94. package/src/baseRender/UIRenderer.ts +0 -195
  95. package/src/baseRender/pcm-audio-processor.js +0 -267
  96. package/src/control/APIForwarder.ts +0 -67
  97. package/src/control/DataCacheQueue.ts +0 -372
  98. package/src/control/EventDispatcher.ts +0 -106
  99. package/src/control/RenderScheduler.ts +0 -1000
  100. package/src/control/SaveAndDownload.js +0 -77
  101. package/src/control/StreamingClient.ts +0 -138
  102. package/src/control/VideoPlayer.ts +0 -306
  103. package/src/control/ttsa.ts +0 -754
  104. package/src/encoding/media-recorder-encoder.ts +0 -175
  105. package/src/encoding/pcm-webm-encoder.ts +0 -72
  106. package/src/encoding/webcodec-opus-encoder.ts +0 -258
  107. package/src/encoding/webm-muxer.ts +0 -337
  108. package/src/global.d.ts +0 -112
  109. package/src/index.ts +0 -2053
  110. package/src/modules/Composition.ts +0 -79
  111. package/src/modules/ResourceManager.ts +0 -926
  112. package/src/modules/TrackRenderer/base-track.ts +0 -7
  113. package/src/modules/TrackRenderer/index.ts +0 -40
  114. package/src/modules/TrackRenderer/render-implements.ts +0 -269
  115. package/src/modules/TrackRenderer/track-pic.ts +0 -19
  116. package/src/modules/TrackRenderer/track-subtitle.ts +0 -16
  117. package/src/modules/cache-manager.ts +0 -10
  118. package/src/modules/decoder.ts +0 -548
  119. package/src/modules/error-handle.ts +0 -20
  120. package/src/modules/network.ts +0 -71
  121. package/src/modules/sentry-reporter.ts +0 -171
  122. package/src/proto/face_data.proto +0 -45
  123. package/src/proto/face_data_pb.js +0 -1297
  124. package/src/proto/protobuf.min.js +0 -8
  125. package/src/types/capability.ts +0 -24
  126. package/src/types/error.ts +0 -211
  127. package/src/types/event.ts +0 -38
  128. package/src/types/frame-data.ts +0 -121
  129. package/src/types/index.ts +0 -220
  130. package/src/types/render.ts +0 -18
  131. package/src/utils/DataInterface.ts +0 -746
  132. package/src/utils/GLDevice.ts +0 -286
  133. package/src/utils/GLPipeline.ts +0 -1293
  134. package/src/utils/GLPipelineDebugTools.ts +0 -174
  135. package/src/utils/Math.ts +0 -266
  136. package/src/utils/__tests__/capability-checker.test.ts +0 -159
  137. package/src/utils/audio-session.ts +0 -144
  138. package/src/utils/audio.ts +0 -44
  139. package/src/utils/blueimp-md5.d.ts +0 -3
  140. package/src/utils/capability-checker.ts +0 -762
  141. package/src/utils/encodeToken.ts +0 -115
  142. package/src/utils/face.ts +0 -29
  143. package/src/utils/float32-decoder.js +0 -130
  144. package/src/utils/fpsTracker.ts +0 -100
  145. package/src/utils/index.ts +0 -182
  146. package/src/utils/logger.js +0 -36
  147. package/src/utils/media-recorder-timestamp.ts +0 -79
  148. package/src/utils/pcmAnalyzer.ts +0 -154
  149. package/src/utils/perfermance.ts +0 -141
  150. package/src/utils/request.ts +0 -107
  151. package/src/utils/requestAnimateFrames.ts +0 -195
  152. package/src/utils/time.ts +0 -32
  153. package/src/utils/video-probe-asset.ts +0 -99
  154. package/src/view/DebugOverlay.ts +0 -409
  155. package/src/worker/streaming-video.ts +0 -4647
  156. /package/{dist → package-dist}/agent/index.cjs +0 -0
  157. /package/{dist → package-dist}/agent/index.umd.js +0 -0
@@ -1,144 +0,0 @@
1
- export type WebAudioSessionType = "playback" | "play-and-record";
2
-
3
- type WebAudioSession = {
4
- type: string;
5
- };
6
-
7
- type NavigatorWithAudioSession = Navigator & {
8
- audioSession?: WebAudioSession;
9
- };
10
-
11
- type WebAudioPlaybackSessionRestoredListener = () => void;
12
-
13
- const captureStates = new WeakMap<
14
- WebAudioSession,
15
- { count: number; previousType: string }
16
- >();
17
- const playbackSessionRestoredListeners = new WeakMap<
18
- WebAudioSession,
19
- Set<WebAudioPlaybackSessionRestoredListener>
20
- >();
21
-
22
- /**
23
- * Keep Web Audio audible through the iOS Ring/Silent switch. Do not override
24
- * a play-and-record session that may belong to an active microphone track.
25
- */
26
- export function configureWebAudioPlaybackSession(
27
- target: Navigator = navigator,
28
- ): boolean {
29
- const audioSession = getAudioSession(target);
30
- if (!audioSession) {
31
- return false;
32
- }
33
-
34
- const captureState = captureStates.get(audioSession);
35
- if (captureState?.count || audioSession.type === "play-and-record") {
36
- return setAudioSessionType(audioSession, "play-and-record");
37
- }
38
- return setAudioSessionType(audioSession, "playback");
39
- }
40
-
41
- export function beginWebAudioCaptureSession(
42
- target: Navigator = navigator,
43
- ): boolean {
44
- const audioSession = getAudioSession(target);
45
- if (!audioSession) {
46
- return false;
47
- }
48
-
49
- const existingState = captureStates.get(audioSession);
50
- const previousType = existingState?.previousType ?? audioSession.type;
51
- if (!setAudioSessionType(audioSession, "play-and-record")) {
52
- return false;
53
- }
54
-
55
- captureStates.set(audioSession, {
56
- count: (existingState?.count ?? 0) + 1,
57
- previousType,
58
- });
59
- return true;
60
- }
61
-
62
- export function subscribeWebAudioPlaybackSessionRestored(
63
- listener: WebAudioPlaybackSessionRestoredListener,
64
- target: Navigator = navigator,
65
- ): () => void {
66
- const audioSession = getAudioSession(target);
67
- if (!audioSession) {
68
- return () => {};
69
- }
70
-
71
- let listeners = playbackSessionRestoredListeners.get(audioSession);
72
- if (!listeners) {
73
- listeners = new Set();
74
- playbackSessionRestoredListeners.set(audioSession, listeners);
75
- }
76
- listeners.add(listener);
77
-
78
- return () => {
79
- listeners?.delete(listener);
80
- if (listeners?.size === 0) {
81
- playbackSessionRestoredListeners.delete(audioSession);
82
- }
83
- };
84
- }
85
-
86
- export function endWebAudioCaptureSession(
87
- target: Navigator = navigator,
88
- ): boolean {
89
- const audioSession = getAudioSession(target);
90
- if (!audioSession) {
91
- return false;
92
- }
93
-
94
- const captureState = captureStates.get(audioSession);
95
- if (!captureState) {
96
- return configureWebAudioPlaybackSession(target);
97
- }
98
-
99
- captureState.count -= 1;
100
- if (captureState.count > 0) {
101
- return setAudioSessionType(audioSession, "play-and-record");
102
- }
103
-
104
- captureStates.delete(audioSession);
105
- const nextType = captureState.previousType === "play-and-record"
106
- ? "play-and-record"
107
- : "playback";
108
- const updated = setAudioSessionType(audioSession, nextType);
109
- if (updated && nextType === "playback") {
110
- notifyPlaybackSessionRestored(audioSession);
111
- }
112
- return updated;
113
- }
114
-
115
- function notifyPlaybackSessionRestored(audioSession: WebAudioSession): void {
116
- const listeners = playbackSessionRestoredListeners.get(audioSession);
117
- if (!listeners) {
118
- return;
119
- }
120
-
121
- for (const listener of [...listeners]) {
122
- try {
123
- listener();
124
- } catch {
125
- // Playback recovery must never break microphone cleanup.
126
- }
127
- }
128
- }
129
-
130
- function getAudioSession(target: Navigator): WebAudioSession | undefined {
131
- return (target as NavigatorWithAudioSession).audioSession;
132
- }
133
-
134
- function setAudioSessionType(
135
- audioSession: WebAudioSession,
136
- type: WebAudioSessionType,
137
- ): boolean {
138
- try {
139
- audioSession.type = type;
140
- return audioSession.type === type;
141
- } catch {
142
- return false;
143
- }
144
- }
@@ -1,44 +0,0 @@
1
- // PCM转WAV的辅助函数
2
- export function pcmToWav(pcmData: Uint8Array) {
3
- const wavHeader = new ArrayBuffer(44);
4
- const view = new DataView(wavHeader);
5
-
6
- /* RIFF identifier */
7
- writeString(view, 0, "RIFF");
8
- /* RIFF chunk length */
9
- view.setUint32(4, 36 + pcmData.length, true);
10
- /* RIFF type */
11
- writeString(view, 8, "WAVE");
12
- /* format chunk identifier */
13
- writeString(view, 12, "fmt ");
14
- /* format chunk length */
15
- view.setUint32(16, 16, true);
16
- /* sample format (raw) */
17
- view.setUint16(20, 1, true);
18
- /* channel count */
19
- view.setUint16(22, 1, true); // mono
20
- /* sample rate */
21
- view.setUint32(24, 24000, true);
22
- /* byte rate (sample rate * block align) */
23
- view.setUint32(28, 24000 * 2, true);
24
- /* block align (channel count * bytes per sample) */
25
- view.setUint16(32, 2, true);
26
- /* bits per sample */
27
- view.setUint16(34, 16, true);
28
- /* data chunk identifier */
29
- writeString(view, 36, "data");
30
- /* data chunk length */
31
- view.setUint32(40, pcmData.length, true);
32
-
33
- const wavData = new Uint8Array(wavHeader.byteLength + pcmData.length);
34
- wavData.set(new Uint8Array(wavHeader), 0);
35
- wavData.set(new Uint8Array(pcmData), wavHeader.byteLength);
36
-
37
- return wavData.buffer;
38
- }
39
-
40
- function writeString(view: DataView, offset: number, string: string) {
41
- for (let i = 0; i < string.length; i++) {
42
- view.setUint8(offset + i, string.charCodeAt(i));
43
- }
44
- }
@@ -1,3 +0,0 @@
1
- declare module 'blueimp-md5' {
2
- export default function md5(str: string): string;
3
- }