@xmaxai/web-sdk 1.0.4 → 1.0.6
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/README.md +248 -21
- package/dist/{VideoContentMode-BM97_H8V.d.cts → VideoRenderStatistics-C7zqzfuS.d.cts} +23 -1
- package/dist/{VideoContentMode-BM97_H8V.d.ts → VideoRenderStatistics-C7zqzfuS.d.ts} +23 -1
- package/dist/{chunk-FEL5MJMJ.cjs → chunk-NWNRFTLE.cjs} +2627 -505
- package/dist/chunk-NWNRFTLE.cjs.map +1 -0
- package/dist/{chunk-FMAQXPTE.js → chunk-PLFWPS5A.js} +2439 -317
- package/dist/chunk-PLFWPS5A.js.map +1 -0
- package/dist/index.cjs +14 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +387 -96
- package/dist/index.d.ts +387 -96
- package/dist/index.js +15 -3
- package/dist/react/index.cjs +6 -3
- package/dist/react/index.cjs.map +1 -1
- package/dist/react/index.d.cts +5 -1
- package/dist/react/index.d.ts +5 -1
- package/dist/react/index.js +4 -1
- package/dist/react/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/chunk-FEL5MJMJ.cjs.map +0 -1
- package/dist/chunk-FMAQXPTE.js.map +0 -1
package/dist/index.d.cts
CHANGED
|
@@ -1,37 +1,59 @@
|
|
|
1
|
-
import { R as RealtimeVideoFormat, a as RealtimeVideoTrack, C as CameraPosition, V as VideoContentMode } from './
|
|
2
|
-
export {
|
|
1
|
+
import { R as RealtimeVideoFormat, a as RealtimeVideoTrack, C as CameraPosition, V as VideoContentMode, b as VideoRenderStatistics } from './VideoRenderStatistics-C7zqzfuS.cjs';
|
|
2
|
+
export { c as RealtimeVideoEncoderPreference, d as RealtimeVideoFormatInit } from './VideoRenderStatistics-C7zqzfuS.cjs';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
|
-
*
|
|
5
|
+
* 实时媒体使用的 RTC 提供方;一个 Manager 生命周期内保持不变。
|
|
6
6
|
*/
|
|
7
|
-
declare enum
|
|
7
|
+
declare enum RtcProvider {
|
|
8
8
|
/**
|
|
9
|
-
*
|
|
9
|
+
* 腾讯实时音视频。
|
|
10
10
|
*/
|
|
11
|
-
|
|
11
|
+
trtc = "trtc",
|
|
12
12
|
/**
|
|
13
|
-
*
|
|
13
|
+
* 声网实时音视频。
|
|
14
14
|
*/
|
|
15
|
-
|
|
15
|
+
agora = "agora",
|
|
16
16
|
/**
|
|
17
|
-
*
|
|
17
|
+
* 火山引擎实时音视频。
|
|
18
18
|
*/
|
|
19
|
-
|
|
20
|
-
|
|
19
|
+
vertc = "vertc"
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* SDK 当前支持的实时生成模型。
|
|
24
|
+
*/
|
|
25
|
+
declare enum RealtimeModel {
|
|
26
|
+
x2_0 = "x2.0",
|
|
27
|
+
x2_0_trtc = "x2.0-trtc",
|
|
21
28
|
x2_1_preview = "x2.1-preview"
|
|
22
29
|
}
|
|
30
|
+
/** 内置模型或服务端新增的模型标识;自定义名称原样传给服务端。 */
|
|
31
|
+
type RealtimeModelName = RealtimeModel | (string & {});
|
|
32
|
+
/**
|
|
33
|
+
* 模型输入画面的像素尺寸。
|
|
34
|
+
*/
|
|
23
35
|
interface ModelSize {
|
|
24
36
|
width: number;
|
|
25
37
|
height: number;
|
|
26
38
|
}
|
|
39
|
+
/**
|
|
40
|
+
* 获取模型的显示名称。
|
|
41
|
+
*/
|
|
42
|
+
declare function modelDisplayName(model: RealtimeModelName): string;
|
|
27
43
|
/**
|
|
28
44
|
* 未指定视频规格时,各媒体来源使用的默认帧率。
|
|
29
45
|
*/
|
|
30
|
-
declare function defaultFrameRate(_model:
|
|
46
|
+
declare function defaultFrameRate(_model: RealtimeModelName): number;
|
|
31
47
|
/**
|
|
32
48
|
* 摄像头采集使用的默认视频规格。
|
|
33
49
|
*/
|
|
34
|
-
declare function defaultCameraVideoFormat(model:
|
|
50
|
+
declare function defaultCameraVideoFormat(model: RealtimeModelName): RealtimeVideoFormat;
|
|
51
|
+
/**
|
|
52
|
+
* 查询 SDK 允许配置的 RTC 提供方,第一项为默认值。
|
|
53
|
+
* 未知模型默认沿用 x2.1-preview 的 Agora,也允许显式选择其他已接入的 RTC;
|
|
54
|
+
* 是否被该模型的服务端支持,由服务端决定。
|
|
55
|
+
*/
|
|
56
|
+
declare function supportedRtcProviders(model: RealtimeModelName): readonly RtcProvider[];
|
|
35
57
|
|
|
36
58
|
/**
|
|
37
59
|
* 定义媒体输入规则与平台媒体能力查询能力。
|
|
@@ -90,11 +112,11 @@ declare class StoredFile {
|
|
|
90
112
|
}
|
|
91
113
|
|
|
92
114
|
/**
|
|
93
|
-
*
|
|
115
|
+
* 上传图片或视频的参数。
|
|
94
116
|
*/
|
|
95
117
|
interface StorageUploadOptions {
|
|
96
118
|
/**
|
|
97
|
-
*
|
|
119
|
+
* 文件数据;File 作为 Blob 的子类可直接传入。
|
|
98
120
|
*/
|
|
99
121
|
data: Blob | ArrayBuffer | Uint8Array;
|
|
100
122
|
/**
|
|
@@ -102,7 +124,7 @@ interface StorageUploadOptions {
|
|
|
102
124
|
*/
|
|
103
125
|
fileName: string;
|
|
104
126
|
/**
|
|
105
|
-
*
|
|
127
|
+
* 文件 MIME 类型;缺省按文件名后缀推断。
|
|
106
128
|
*/
|
|
107
129
|
contentType?: string;
|
|
108
130
|
/**
|
|
@@ -111,104 +133,72 @@ interface StorageUploadOptions {
|
|
|
111
133
|
onProgress?: (transferred: number, total: number) => void;
|
|
112
134
|
}
|
|
113
135
|
/**
|
|
114
|
-
*
|
|
136
|
+
* 定义图片、视频上传和视频下载能力。
|
|
115
137
|
*/
|
|
116
138
|
interface StorageServicing {
|
|
117
139
|
/**
|
|
118
140
|
* 上传图片。
|
|
119
141
|
*
|
|
120
|
-
* 从 Xmax
|
|
121
|
-
* 实时生成的参考图路径。
|
|
142
|
+
* 从 Xmax 服务获取临时凭证后直传对象存储。
|
|
122
143
|
*
|
|
123
144
|
* @returns 已存储文件信息。
|
|
124
145
|
* @throws 参数无效、凭证获取失败或上传失败时抛出错误。
|
|
125
146
|
*/
|
|
126
147
|
uploadImage(options: StorageUploadOptions): Promise<StoredFile>;
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
/**
|
|
130
|
-
* 实时媒体使用的 RTC 提供方;一个 Manager 生命周期内保持不变。
|
|
131
|
-
*/
|
|
132
|
-
declare enum RtcProvider {
|
|
133
148
|
/**
|
|
134
|
-
*
|
|
149
|
+
* 上传视频。
|
|
150
|
+
*
|
|
151
|
+
* 从 Xmax 服务获取临时凭证后,通过 COS putObject 普通上传原始文件。
|
|
152
|
+
* 不进行转码、压缩或分片上传;单个文件受 COS 普通上传的 5GB 上限约束。
|
|
153
|
+
*
|
|
154
|
+
* @returns 已存储文件信息。
|
|
155
|
+
* @throws 参数无效、凭证获取失败或上传失败时抛出错误。
|
|
135
156
|
*/
|
|
136
|
-
|
|
157
|
+
uploadVideo(options: StorageUploadOptions): Promise<StoredFile>;
|
|
137
158
|
/**
|
|
138
|
-
*
|
|
159
|
+
* 下载完整视频文件并触发浏览器保存;跨域地址需要允许 CORS。
|
|
160
|
+
*
|
|
161
|
+
* @param options.url 可直接访问的 HTTP(S) 视频地址。
|
|
162
|
+
* @param options.fileName 保存时建议使用的文件名。
|
|
163
|
+
* @param options.signal 用于取消网络下载的信号。
|
|
164
|
+
* @returns 文件读取完成并已触发浏览器保存,不代表文件已写入磁盘。
|
|
165
|
+
* @throws 参数无效、非浏览器环境、下载失败或主动取消时抛出错误。
|
|
139
166
|
*/
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
167
|
+
downloadVideo(options: {
|
|
168
|
+
url: string;
|
|
169
|
+
fileName: string;
|
|
170
|
+
signal?: AbortSignal;
|
|
171
|
+
}): Promise<void>;
|
|
143
172
|
}
|
|
144
173
|
|
|
145
|
-
/**
|
|
146
|
-
* 远端视频插帧的开关与显示帧率配置。
|
|
147
|
-
*/
|
|
148
|
-
interface FrameInterpolationConfiguration {
|
|
149
|
-
/**
|
|
150
|
-
* 是否请求开启远端插帧,默认 false。不支持时自动播放原视频。
|
|
151
|
-
*/
|
|
152
|
-
enabled?: boolean;
|
|
153
|
-
/**
|
|
154
|
-
* 显示帧率上限,默认 60;每对源帧最多插入一帧。取值 1–60。
|
|
155
|
-
*/
|
|
156
|
-
targetFrameRate?: number;
|
|
157
|
-
}
|
|
158
|
-
interface RealtimeConfigurationInit {
|
|
159
|
-
/**
|
|
160
|
-
* RTC 提供方,默认 TRTC;不根据模型名称自动推断。
|
|
161
|
-
*/
|
|
162
|
-
provider?: RtcProvider;
|
|
163
|
-
/**
|
|
164
|
-
* 实时生成业务使用的模型。
|
|
165
|
-
*/
|
|
166
|
-
model: RealtimeModel;
|
|
167
|
-
/**
|
|
168
|
-
* 是否默认开启远端生成画面的插帧,默认 false。
|
|
169
|
-
* frameInterpolation.enabled 显式设置时优先。
|
|
170
|
-
*/
|
|
171
|
-
isFrameInterpolationEnabled?: boolean;
|
|
172
|
-
/**
|
|
173
|
-
* 插帧详细配置;enabled 显式设置时优先于简化开关。
|
|
174
|
-
*/
|
|
175
|
-
frameInterpolation?: FrameInterpolationConfiguration;
|
|
176
|
-
}
|
|
177
174
|
/**
|
|
178
175
|
* 创建实时 Manager 所需的业务配置。
|
|
179
176
|
*/
|
|
180
177
|
declare class RealtimeConfiguration {
|
|
181
|
-
/**
|
|
182
|
-
* RTC 配置
|
|
183
|
-
*/
|
|
184
|
-
readonly provider: RtcProvider;
|
|
185
|
-
/**
|
|
186
|
-
* 模型配置
|
|
187
|
-
*/
|
|
188
178
|
/**
|
|
189
179
|
* 实时生成业务使用的模型。
|
|
190
180
|
*/
|
|
191
|
-
readonly model:
|
|
181
|
+
readonly model: RealtimeModelName;
|
|
192
182
|
/**
|
|
193
|
-
*
|
|
183
|
+
* 实时连接使用的 RTC 提供方。
|
|
194
184
|
*/
|
|
185
|
+
readonly provider: RtcProvider;
|
|
195
186
|
/**
|
|
196
187
|
* 是否默认请求开启远端生成画面的插帧。
|
|
197
188
|
*/
|
|
198
189
|
readonly isFrameInterpolationEnabled: boolean;
|
|
199
|
-
/**
|
|
200
|
-
* 已补全默认值的只读插帧配置。
|
|
201
|
-
*/
|
|
202
|
-
readonly frameInterpolation: Readonly<Required<FrameInterpolationConfiguration>>;
|
|
203
190
|
/**
|
|
204
191
|
* 创建实时业务配置。
|
|
205
192
|
*
|
|
206
|
-
* @param init.model
|
|
207
|
-
* @param init.provider RTC
|
|
208
|
-
* @param init.isFrameInterpolationEnabled
|
|
209
|
-
* @param init.frameInterpolation 插帧开关和显示帧率上限的详细配置。
|
|
193
|
+
* @param init.model 实时生成业务使用的模型;未知名称原样透传,默认配置同 x2.1-preview。
|
|
194
|
+
* @param init.provider RTC 提供方,默认按模型定义选择;必须受模型支持,创建后不可切换。
|
|
195
|
+
* @param init.isFrameInterpolationEnabled 是否默认开启远端生成画面的插帧,默认 false。
|
|
210
196
|
*/
|
|
211
|
-
constructor(init:
|
|
197
|
+
constructor(init: {
|
|
198
|
+
model: RealtimeModelName;
|
|
199
|
+
provider?: RtcProvider;
|
|
200
|
+
isFrameInterpolationEnabled?: boolean;
|
|
201
|
+
});
|
|
212
202
|
}
|
|
213
203
|
|
|
214
204
|
/**
|
|
@@ -238,7 +228,32 @@ interface NetworkStatistics {
|
|
|
238
228
|
*/
|
|
239
229
|
type NetworkStatisticsListener = (statistics: NetworkStatistics | undefined) => void;
|
|
240
230
|
|
|
231
|
+
/**
|
|
232
|
+
* 服务端读取网络视频时使用的采样方式。
|
|
233
|
+
*/
|
|
234
|
+
declare enum RealtimeVideoSampleMethod {
|
|
235
|
+
time = "time",
|
|
236
|
+
fps = "fps"
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* 服务端可直接访问的网络视频及采样配置。
|
|
240
|
+
*/
|
|
241
|
+
interface RealtimeReferenceVideo {
|
|
242
|
+
/**
|
|
243
|
+
* HTTP 或 HTTPS 视频地址。
|
|
244
|
+
*/
|
|
245
|
+
readonly path: string;
|
|
246
|
+
/**
|
|
247
|
+
* 服务端采样方式。
|
|
248
|
+
*/
|
|
249
|
+
readonly sampleMethod: RealtimeVideoSampleMethod;
|
|
250
|
+
}
|
|
251
|
+
|
|
241
252
|
interface RealtimeContextInit {
|
|
253
|
+
/**
|
|
254
|
+
* 服务端直接读取的网络视频。
|
|
255
|
+
*/
|
|
256
|
+
referenceVideo?: RealtimeReferenceVideo;
|
|
242
257
|
/**
|
|
243
258
|
* 实时生成使用的文本条件。
|
|
244
259
|
*/
|
|
@@ -252,6 +267,10 @@ interface RealtimeContextInit {
|
|
|
252
267
|
* 单次实时生成任务的文本和参考资源上下文。
|
|
253
268
|
*/
|
|
254
269
|
declare class RealtimeContext {
|
|
270
|
+
/**
|
|
271
|
+
* 服务端直接读取的网络视频。
|
|
272
|
+
*/
|
|
273
|
+
readonly referenceVideo?: RealtimeReferenceVideo;
|
|
255
274
|
/**
|
|
256
275
|
* 生成条件
|
|
257
276
|
*/
|
|
@@ -632,6 +651,12 @@ interface XmaxRealtimeManaging {
|
|
|
632
651
|
* 切换客户端插帧,不改变回传分辨率或重启任务。不支持时抛错且保留配置。
|
|
633
652
|
*/
|
|
634
653
|
setFrameInterpolationEnabled(enabled: boolean): Promise<void>;
|
|
654
|
+
/**
|
|
655
|
+
* 手动升/降一档下行输出尺寸,便于调试 change_target_size;仅支持正在生成的 Agora 会话。
|
|
656
|
+
* 仅改变分辨率,成功发送后同步目标档位与插帧尺寸;自动调档仍保持开启。
|
|
657
|
+
* 到达 L1/L5 边界时不重复发送;发送成功不代表服务端已生效。
|
|
658
|
+
*/
|
|
659
|
+
adjustDownlinkQuality(direction: "upgrade" | "downgrade"): Promise<void>;
|
|
635
660
|
/**
|
|
636
661
|
* 当前本地媒体预览音量,取值范围为 `0...1`。
|
|
637
662
|
*/
|
|
@@ -697,17 +722,55 @@ interface XmaxRealtimeManaging {
|
|
|
697
722
|
*/
|
|
698
723
|
enableFrameValidation?: boolean;
|
|
699
724
|
}): Promise<RealtimeMediaStream>;
|
|
725
|
+
/**
|
|
726
|
+
* 创建服务端直接读取的 HTTP/HTTPS 网络视频源,不采集或发布本地音视频。
|
|
727
|
+
* 本地预览静音播放一次,独立于服务端进度;创建源不会开始生成。
|
|
728
|
+
* 地址必须可由服务端直接访问,不转发浏览器 Cookie 或自定义鉴权头。
|
|
729
|
+
* @param options.videoFormat 模型输入及生成画面规格,不是上行编码参数。
|
|
730
|
+
* @param options.sampleMethod 服务端采样方式,默认 time。
|
|
731
|
+
* @param options.onFinish 当前任务收到服务端完成消息且生成就绪后调用一次,不代表尾帧已播放完。
|
|
732
|
+
* @throws 地址、格式无效或已有活动媒体源时抛错;close 释放源,disconnect 保留预览。
|
|
733
|
+
*/
|
|
734
|
+
createNetworkVideoStream(options: {
|
|
735
|
+
url: string;
|
|
736
|
+
videoFormat: RealtimeVideoFormat;
|
|
737
|
+
sampleMethod?: RealtimeVideoSampleMethod;
|
|
738
|
+
onFinish?: () => void;
|
|
739
|
+
}): Promise<RealtimeMediaStream>;
|
|
740
|
+
/**
|
|
741
|
+
* 从本地 File/Blob 创建文件视频源,支持 TRTC、Agora 和 VeRTC,不访问摄像头或麦克风。
|
|
742
|
+
* 通过 Canvas 等比缩放补黑边,文件音频独立上行,本地预览始终静音。
|
|
743
|
+
* 应从用户点击事件直接调用以解锁播放;创建后停在首帧,startGeneration 时开始播放。
|
|
744
|
+
* @param options.videoFormat 期望的视频规格;尺寸自动匹配最接近宽高比的模型档位,等距时优先横屏。
|
|
745
|
+
* @param options.loop 是否循环播放文件音视频,默认 true。
|
|
746
|
+
* @param options.includeAudio 是否发送文件音频,默认 true;无音轨文件输出静音,false 不创建音频轨。
|
|
747
|
+
* @throws 提供方不支持、文件/格式无效、浏览器无法解码或播放受限时抛错。
|
|
748
|
+
*/
|
|
749
|
+
createLocalVideoStream(options: {
|
|
750
|
+
file: Blob;
|
|
751
|
+
videoFormat: RealtimeVideoFormat;
|
|
752
|
+
loop?: boolean;
|
|
753
|
+
includeAudio?: boolean;
|
|
754
|
+
}): Promise<RealtimeMediaStream>;
|
|
700
755
|
/**
|
|
701
756
|
* 更新当前本地流的上行视频格式,立即应用于 RTC 编码器,不重连或重启生成。
|
|
702
757
|
* 传入完整格式;未指定的码率和编码偏好按 RealtimeVideoFormat 默认规则解析。
|
|
703
758
|
* 成功后更新本地轨道的 videoFormat,后续重连继续使用该格式。
|
|
704
759
|
* 模型生成及远端插帧仍使用创建本地流时的格式;此接口不改变生成尺寸。
|
|
705
760
|
* 实际发送规格受设备、浏览器和网络影响,应通过统计回调确认。
|
|
761
|
+
* Agora 上行自适应以本次成功应用的完整格式作为新的 L1 基准,后续五档按比例调整尺寸和帧率。
|
|
706
762
|
*
|
|
707
763
|
* @param videoFormat 本次完整的上行尺寸、帧率和编码配置。
|
|
708
|
-
* @throws
|
|
764
|
+
* @throws 无本地相机或文件视频流、其他操作进行中、参数无效或 RTC 更新失败时抛错。
|
|
765
|
+
*/
|
|
766
|
+
updateUplinkVideoFormat(videoFormat: RealtimeVideoFormat): Promise<void>;
|
|
767
|
+
/**
|
|
768
|
+
* 试验性上行调帧接口:连接建立后使用,保留最近应用的宽高、码率区间和编码偏好。
|
|
769
|
+
* 成功后更新本地轨道格式,重连沿用;不修改服务端生成或输出规格。
|
|
770
|
+
* 手动调用会重置上行质量样本,并以成功后的完整格式作为新的自适应 L1 基准。
|
|
771
|
+
* 仍会重新提交完整编码配置,不保证 RTC 内部自适应状态不受影响,需用实际统计验证。
|
|
709
772
|
*/
|
|
710
|
-
|
|
773
|
+
updateUplinkFrameRate(fps: number): Promise<void>;
|
|
711
774
|
/**
|
|
712
775
|
* 停止本地相机流并释放本地预览与 RTC 资源。
|
|
713
776
|
*/
|
|
@@ -724,11 +787,11 @@ interface XmaxRealtimeManaging {
|
|
|
724
787
|
/**
|
|
725
788
|
* 使用当前 Manager 创建的本地流建立实时连接。
|
|
726
789
|
*
|
|
727
|
-
* 创建实时会话、加入 RTC
|
|
790
|
+
* 创建实时会话、加入 RTC 房间并启动会话心跳;摄像头源发布本地流,网络视频源仅接收。
|
|
728
791
|
* 启用帧检测时,发布前并行等待相机预热(固定 200ms),避免把黑帧推给 RTC。
|
|
729
792
|
* 返回的远端媒体流在生成开始后承载远端生成画面。
|
|
730
793
|
*
|
|
731
|
-
* @param localStream
|
|
794
|
+
* @param localStream 由当前 Manager 创建的摄像头、本地文件或网络视频源。
|
|
732
795
|
* @returns 远端生成结果占位的媒体流。
|
|
733
796
|
* @throws 本地流不属于当前 Manager、已有活动连接、会话创建或进房
|
|
734
797
|
* 发布失败时抛出错误;失败时自动释放连接资源并恢复本地预览。
|
|
@@ -749,7 +812,7 @@ interface XmaxRealtimeManaging {
|
|
|
749
812
|
* 尚未连接时先建立实时连接;已在生成时仅更新生成条件,不重启生成。
|
|
750
813
|
* 首次生成必须提供条件上下文,之后缺省时复用最近一次缓存的上下文。
|
|
751
814
|
*
|
|
752
|
-
* @param options.localStream
|
|
815
|
+
* @param options.localStream 由当前 Manager 创建的摄像头、本地文件或网络视频源。
|
|
753
816
|
* @param options.context 本次生成使用的条件上下文;缺省时复用缓存。
|
|
754
817
|
* @returns 承载远端生成画面的媒体流。
|
|
755
818
|
* @throws 本地流不属于当前 Manager、缺少可用的条件上下文、信令发送
|
|
@@ -913,7 +976,174 @@ declare class XmaxConfiguration {
|
|
|
913
976
|
}
|
|
914
977
|
|
|
915
978
|
/**
|
|
916
|
-
*
|
|
979
|
+
* 非实时视频的输出质量。
|
|
980
|
+
*/
|
|
981
|
+
declare enum NonRealtimeQuality {
|
|
982
|
+
sd = "sd",
|
|
983
|
+
hd = "hd"
|
|
984
|
+
}
|
|
985
|
+
/**
|
|
986
|
+
* 服务端任务状态;上传进度不属于任务状态。
|
|
987
|
+
*/
|
|
988
|
+
declare enum NonRealtimeTaskStatus {
|
|
989
|
+
submitted = "submitted",
|
|
990
|
+
processing = "processing",
|
|
991
|
+
completed = "completed",
|
|
992
|
+
error = "error"
|
|
993
|
+
}
|
|
994
|
+
/**
|
|
995
|
+
* 提交非实时任务的参数;资源必须来自 Xmax 上传流程,不能使用 blob URL 或本地路径。
|
|
996
|
+
*/
|
|
997
|
+
interface NonRealtimeTaskOptions {
|
|
998
|
+
/**
|
|
999
|
+
* 模型标识。
|
|
1000
|
+
*/
|
|
1001
|
+
model: string;
|
|
1002
|
+
/**
|
|
1003
|
+
* 已上传源视频的 URL。
|
|
1004
|
+
*/
|
|
1005
|
+
videoPath: string;
|
|
1006
|
+
/**
|
|
1007
|
+
* 生成指令;去除首尾空白后为 1–1024 个字符。
|
|
1008
|
+
*/
|
|
1009
|
+
prompt: string;
|
|
1010
|
+
/**
|
|
1011
|
+
* 已上传参考图片的 URL;省略表示不使用参考图。
|
|
1012
|
+
*/
|
|
1013
|
+
referencePath?: string;
|
|
1014
|
+
/**
|
|
1015
|
+
* 输出质量。
|
|
1016
|
+
*/
|
|
1017
|
+
quality: NonRealtimeQuality;
|
|
1018
|
+
/**
|
|
1019
|
+
* 可选的处理帧率;仅接受协议支持的整数,省略时沿用源视频帧率(含小数)。
|
|
1020
|
+
*/
|
|
1021
|
+
fps?: number;
|
|
1022
|
+
}
|
|
1023
|
+
/**
|
|
1024
|
+
* 非实时生成结果;缺失或 null 的服务端字段规范化为 undefined。
|
|
1025
|
+
*/
|
|
1026
|
+
interface NonRealtimeResult {
|
|
1027
|
+
readonly url?: string;
|
|
1028
|
+
readonly uploadError?: string;
|
|
1029
|
+
readonly uploadStatus?: string;
|
|
1030
|
+
readonly finalizeDurationMs?: number;
|
|
1031
|
+
readonly compressionLevel?: string;
|
|
1032
|
+
readonly frameCount?: number;
|
|
1033
|
+
readonly fps?: number;
|
|
1034
|
+
readonly durationMs?: number;
|
|
1035
|
+
readonly fileSizeBytes?: number;
|
|
1036
|
+
readonly droppedFrameCount?: number;
|
|
1037
|
+
readonly originalFileSizeBytes?: number;
|
|
1038
|
+
}
|
|
1039
|
+
/**
|
|
1040
|
+
* 非实时任务快照;uid 和 status 为 SDK 查询、恢复及轮询所需字段。
|
|
1041
|
+
* 时间戳保持服务端原始字符串,不推断时区。
|
|
1042
|
+
*/
|
|
1043
|
+
interface NonRealtimeTask {
|
|
1044
|
+
readonly uid: string;
|
|
1045
|
+
readonly status: NonRealtimeTaskStatus;
|
|
1046
|
+
readonly userUid?: string;
|
|
1047
|
+
readonly prompt?: string;
|
|
1048
|
+
readonly videoPath?: string;
|
|
1049
|
+
readonly referencePath?: string;
|
|
1050
|
+
readonly processorId?: string;
|
|
1051
|
+
readonly quality?: NonRealtimeQuality;
|
|
1052
|
+
readonly requestedFps?: number;
|
|
1053
|
+
readonly resolvedFps?: number;
|
|
1054
|
+
readonly retryCount?: number;
|
|
1055
|
+
readonly videoDurationSeconds?: number;
|
|
1056
|
+
readonly billableDurationSeconds?: number;
|
|
1057
|
+
readonly chargePoints?: number;
|
|
1058
|
+
readonly result?: NonRealtimeResult;
|
|
1059
|
+
readonly processStartTime?: string;
|
|
1060
|
+
readonly createTimestamp?: string;
|
|
1061
|
+
readonly updateTimestamp?: string;
|
|
1062
|
+
}
|
|
1063
|
+
/**
|
|
1064
|
+
* 分页查询选项。
|
|
1065
|
+
*/
|
|
1066
|
+
interface NonRealtimeTaskListOptions {
|
|
1067
|
+
/**
|
|
1068
|
+
* 从 1 开始的页码,默认 1。
|
|
1069
|
+
*/
|
|
1070
|
+
pageNumber?: number;
|
|
1071
|
+
/**
|
|
1072
|
+
* 每页数量,1–100,默认 10。
|
|
1073
|
+
*/
|
|
1074
|
+
pageSize?: number;
|
|
1075
|
+
/**
|
|
1076
|
+
* 可选的任务状态筛选。
|
|
1077
|
+
*/
|
|
1078
|
+
status?: NonRealtimeTaskStatus;
|
|
1079
|
+
}
|
|
1080
|
+
/**
|
|
1081
|
+
* 按创建时间从新到旧排列的任务页。
|
|
1082
|
+
*/
|
|
1083
|
+
interface NonRealtimeTaskPage {
|
|
1084
|
+
readonly pageNumber: number;
|
|
1085
|
+
readonly pageSize: number;
|
|
1086
|
+
readonly total: number;
|
|
1087
|
+
readonly list: readonly NonRealtimeTask[];
|
|
1088
|
+
}
|
|
1089
|
+
|
|
1090
|
+
/**
|
|
1091
|
+
* 本地任务等待选项;所有时间单位均为毫秒。
|
|
1092
|
+
*/
|
|
1093
|
+
interface NonRealtimeWaitOptions {
|
|
1094
|
+
/**
|
|
1095
|
+
* 成功查询后等待多久再查询,默认 2000;必须为正数。
|
|
1096
|
+
*/
|
|
1097
|
+
intervalMs?: number;
|
|
1098
|
+
/**
|
|
1099
|
+
* 总等待时限,必须为正数;省略时持续等待直至终态或取消。
|
|
1100
|
+
*/
|
|
1101
|
+
timeoutMs?: number;
|
|
1102
|
+
/**
|
|
1103
|
+
* 连续瞬时查询错误允许重试的次数,默认 3;成功查询后重置,0 表示不重试。
|
|
1104
|
+
*/
|
|
1105
|
+
maxConsecutiveRetries?: number;
|
|
1106
|
+
/**
|
|
1107
|
+
* 停止轮询及正在进行的查询,不取消服务端任务或退款。
|
|
1108
|
+
*/
|
|
1109
|
+
signal?: AbortSignal;
|
|
1110
|
+
/**
|
|
1111
|
+
* 每次成功查询的任务快照(含终态),不是生成百分比;回调异常不影响轮询。
|
|
1112
|
+
*/
|
|
1113
|
+
onTaskUpdated?: (task: NonRealtimeTask) => void;
|
|
1114
|
+
}
|
|
1115
|
+
/**
|
|
1116
|
+
* 非实时视频任务能力;各任务和等待操作相互独立,不维护唯一的当前任务。
|
|
1117
|
+
*/
|
|
1118
|
+
interface XmaxNonRealtimeManaging {
|
|
1119
|
+
/**
|
|
1120
|
+
* 提交并立即返回任务;不等待生成,不自动上传资源,也不自动重试提交请求。
|
|
1121
|
+
* 超时或响应解析失败不能证明服务端未创建任务,重复提交可能再次扣费。
|
|
1122
|
+
*/
|
|
1123
|
+
submitTask(options: NonRealtimeTaskOptions): Promise<NonRealtimeTask>;
|
|
1124
|
+
/**
|
|
1125
|
+
* 查询单个任务;服务端 error 状态原样返回,不作为 HTTP 查询失败抛出。
|
|
1126
|
+
*/
|
|
1127
|
+
getTask(taskUid: string, options?: {
|
|
1128
|
+
signal?: AbortSignal;
|
|
1129
|
+
}): Promise<NonRealtimeTask>;
|
|
1130
|
+
/**
|
|
1131
|
+
* 批量查询最多 100 个 ID,去重后按请求顺序返回;任一任务无权限或不存在则整体失败。
|
|
1132
|
+
*/
|
|
1133
|
+
getTasks(taskUids: readonly string[]): Promise<readonly NonRealtimeTask[]>;
|
|
1134
|
+
/**
|
|
1135
|
+
* 查询任务列表;默认第一页、每页 10 条,最多 100 条。
|
|
1136
|
+
*/
|
|
1137
|
+
listTasks(options?: NonRealtimeTaskListOptions): Promise<NonRealtimeTaskPage>;
|
|
1138
|
+
/**
|
|
1139
|
+
* 串行轮询直到 completed 且结果 URL 可用;任务 error 时抛出 NonRealtimeTaskError。
|
|
1140
|
+
* 超时、取消只停止本地等待,之后可使用同一任务 ID 继续查询或等待。
|
|
1141
|
+
*/
|
|
1142
|
+
waitForCompletion(taskUid: string, options?: NonRealtimeWaitOptions): Promise<NonRealtimeTask>;
|
|
1143
|
+
}
|
|
1144
|
+
|
|
1145
|
+
/**
|
|
1146
|
+
* SDK 的统一入口,负责创建实时、非实时和媒体服务组件。
|
|
917
1147
|
*/
|
|
918
1148
|
declare class XmaxClient {
|
|
919
1149
|
/**
|
|
@@ -942,20 +1172,39 @@ declare class XmaxClient {
|
|
|
942
1172
|
* @returns 可用于本地相机预览、实时连接与生成的实时 Manager。
|
|
943
1173
|
*/
|
|
944
1174
|
createRealtimeManager(options: RealtimeConfiguration): XmaxRealtimeManaging;
|
|
1175
|
+
/**
|
|
1176
|
+
* 创建非实时视频任务 Manager,使用全局 API Key 和当前环境的非实时任务服务地址。
|
|
1177
|
+
* 本方法不发起网络请求或加载 RTC,任务由服务端持久化,可按 ID 恢复查询。
|
|
1178
|
+
*/
|
|
1179
|
+
createNonRealtimeManager(): XmaxNonRealtimeManaging;
|
|
945
1180
|
/**
|
|
946
1181
|
* 创建媒体处理与能力查询 Service。
|
|
947
1182
|
*
|
|
948
1183
|
* @param model 媒体输入规则使用的模型,默认为 `x2.0-trtc`。
|
|
949
1184
|
*/
|
|
950
|
-
createMediaService(model?:
|
|
1185
|
+
createMediaService(model?: RealtimeModelName): MediaServicing;
|
|
951
1186
|
/**
|
|
952
1187
|
* 创建文件存储 Service。
|
|
953
1188
|
*
|
|
954
|
-
* @returns
|
|
1189
|
+
* @returns 可上传图片和视频到对象存储的存储 Service。
|
|
955
1190
|
*/
|
|
956
1191
|
createStorageService(): StorageServicing;
|
|
957
1192
|
}
|
|
958
1193
|
|
|
1194
|
+
/**
|
|
1195
|
+
* 服务端任务失败或终态结果不可用;保留最后的任务快照供接入方展示及恢复查询。
|
|
1196
|
+
*/
|
|
1197
|
+
declare class NonRealtimeTaskError extends XmaxError {
|
|
1198
|
+
/**
|
|
1199
|
+
* 失败上下文
|
|
1200
|
+
*/
|
|
1201
|
+
readonly task: NonRealtimeTask;
|
|
1202
|
+
/**
|
|
1203
|
+
* 使用 API 错误分类,不虚构服务端未返回的业务错误码。
|
|
1204
|
+
*/
|
|
1205
|
+
constructor(task: NonRealtimeTask, message: string);
|
|
1206
|
+
}
|
|
1207
|
+
|
|
959
1208
|
/**
|
|
960
1209
|
* 提供模型输入尺寸和平台媒体能力相关的业务规则。
|
|
961
1210
|
* 模型输入尺寸与远端插帧能力。
|
|
@@ -964,13 +1213,13 @@ declare class MediaService implements MediaServicing {
|
|
|
964
1213
|
/**
|
|
965
1214
|
* 模型约束
|
|
966
1215
|
*/
|
|
967
|
-
readonly model:
|
|
1216
|
+
readonly model: RealtimeModelName;
|
|
968
1217
|
/**
|
|
969
1218
|
* 创建媒体服务。
|
|
970
1219
|
*
|
|
971
1220
|
* @param model 媒体输入规则使用的模型,默认为 `x2.0-trtc`。
|
|
972
1221
|
*/
|
|
973
|
-
constructor(model?:
|
|
1222
|
+
constructor(model?: RealtimeModelName);
|
|
974
1223
|
/**
|
|
975
1224
|
* Web 插帧保留原始尺寸;/16 对齐由 GPU 内部补边处理,不缩小回传视频。
|
|
976
1225
|
*/
|
|
@@ -1002,6 +1251,13 @@ declare enum ApiMethod {
|
|
|
1002
1251
|
put = "PUT",
|
|
1003
1252
|
delete = "DELETE"
|
|
1004
1253
|
}
|
|
1254
|
+
/**
|
|
1255
|
+
* 请求控制选项;signal 仅取消本地 HTTP 请求,不撤销服务端已执行的操作。
|
|
1256
|
+
*/
|
|
1257
|
+
interface ApiRequestOptions {
|
|
1258
|
+
signal?: AbortSignal;
|
|
1259
|
+
keepalive?: boolean;
|
|
1260
|
+
}
|
|
1005
1261
|
/**
|
|
1006
1262
|
* 定义 Xmax API 的基础请求能力。
|
|
1007
1263
|
*
|
|
@@ -1018,11 +1274,11 @@ interface ApiServicing {
|
|
|
1018
1274
|
* @returns 统一响应中的 `data` 字段。
|
|
1019
1275
|
* @throws 配置无效、网络失败、业务失败或响应无法解析时抛出错误。
|
|
1020
1276
|
*/
|
|
1021
|
-
request<T>(method: ApiMethod, path: string, body?: unknown): Promise<T>;
|
|
1277
|
+
request<T>(method: ApiMethod, path: string, body?: unknown, options?: ApiRequestOptions): Promise<T>;
|
|
1022
1278
|
/**
|
|
1023
1279
|
* 发送 GET 请求。
|
|
1024
1280
|
*/
|
|
1025
|
-
get<T>(path: string): Promise<T>;
|
|
1281
|
+
get<T>(path: string, options?: ApiRequestOptions): Promise<T>;
|
|
1026
1282
|
/**
|
|
1027
1283
|
* 发送 POST 请求。
|
|
1028
1284
|
*/
|
|
@@ -1103,7 +1359,7 @@ interface StorageServiceOptions {
|
|
|
1103
1359
|
identifierGenerator?: () => string;
|
|
1104
1360
|
}
|
|
1105
1361
|
/**
|
|
1106
|
-
*
|
|
1362
|
+
* 管理文件上传和视频下载。
|
|
1107
1363
|
*
|
|
1108
1364
|
* 上传直传不经过 Xmax 服务中转:先通过 `GET /cos/sts` 获取临时凭证,
|
|
1109
1365
|
* 再用临时凭证创建 COS 客户端直传;访问地址按 `Location`、自定义
|
|
@@ -1136,6 +1392,18 @@ declare class StorageService implements StorageServicing {
|
|
|
1136
1392
|
* 上传图片并返回访问地址。
|
|
1137
1393
|
*/
|
|
1138
1394
|
uploadImage(options: StorageUploadOptions): Promise<StoredFile>;
|
|
1395
|
+
/**
|
|
1396
|
+
* 普通上传原始视频并返回访问地址,不进行转码、压缩或分片。
|
|
1397
|
+
*/
|
|
1398
|
+
uploadVideo(options: StorageUploadOptions): Promise<StoredFile>;
|
|
1399
|
+
/**
|
|
1400
|
+
* 下载原始视频文件并交给浏览器保存,支持取消网络下载。
|
|
1401
|
+
*/
|
|
1402
|
+
downloadVideo(options: Parameters<StorageServicing["downloadVideo"]>[0]): Promise<void>;
|
|
1403
|
+
/**
|
|
1404
|
+
* 获取临时凭证并通过 COS putObject 上传文件,统一处理进度、结果和错误。
|
|
1405
|
+
*/
|
|
1406
|
+
private upload;
|
|
1139
1407
|
/**
|
|
1140
1408
|
* 获取临时存储配置;字段不完整时抛出 API 错误。
|
|
1141
1409
|
*/
|
|
@@ -1181,8 +1449,11 @@ declare class StorageService implements StorageServicing {
|
|
|
1181
1449
|
|
|
1182
1450
|
interface RemoteFrameInterpolationOptions {
|
|
1183
1451
|
size: ModelSize;
|
|
1184
|
-
targetFrameRate: number;
|
|
1185
1452
|
onActiveChange?: (active: boolean) => void;
|
|
1453
|
+
/**
|
|
1454
|
+
* 实际提交画布呈现时通知,参数表示是否为插值帧。
|
|
1455
|
+
*/
|
|
1456
|
+
onFramePresented?: (interpolated: boolean) => void;
|
|
1186
1457
|
onFailure: (error: unknown) => void;
|
|
1187
1458
|
}
|
|
1188
1459
|
|
|
@@ -1230,6 +1501,10 @@ declare class XmaxVideoView {
|
|
|
1230
1501
|
private interpolationOptions?;
|
|
1231
1502
|
private interpolationPipeline?;
|
|
1232
1503
|
private interpolationCanvas?;
|
|
1504
|
+
/**
|
|
1505
|
+
* 呈现统计组件
|
|
1506
|
+
*/
|
|
1507
|
+
private readonly statisticsController;
|
|
1233
1508
|
/**
|
|
1234
1509
|
* DOM 挂载状态
|
|
1235
1510
|
*/
|
|
@@ -1246,6 +1521,14 @@ declare class XmaxVideoView {
|
|
|
1246
1521
|
* 当前显示的视频轨道;切换时自动解绑旧轨道。
|
|
1247
1522
|
*/
|
|
1248
1523
|
get track(): RealtimeVideoTrack | undefined;
|
|
1524
|
+
/**
|
|
1525
|
+
* 每秒接收当前视图的呈现统计;换流、卸载或不可统计时返回 undefined。
|
|
1526
|
+
*/
|
|
1527
|
+
get renderStatisticsHandler(): ((statistics?: VideoRenderStatistics) => void) | undefined;
|
|
1528
|
+
/**
|
|
1529
|
+
* 更新统计回调,不影响播放;移除回调时停止采集。
|
|
1530
|
+
*/
|
|
1531
|
+
set renderStatisticsHandler(handler: ((statistics?: VideoRenderStatistics) => void) | undefined);
|
|
1249
1532
|
/**
|
|
1250
1533
|
* 解绑旧轨道后接入新轨道,并为新内容重新启用一次性首帧通知。
|
|
1251
1534
|
*/
|
|
@@ -1274,6 +1557,10 @@ declare class XmaxVideoView {
|
|
|
1274
1557
|
* 从容器元素移除。
|
|
1275
1558
|
*/
|
|
1276
1559
|
detach(): void;
|
|
1560
|
+
/**
|
|
1561
|
+
* 设置网络视频预览;静音播放一次,不捕获或发布媒体轨道。 @internal
|
|
1562
|
+
*/
|
|
1563
|
+
setVideoURL(url: string | null): void;
|
|
1277
1564
|
/**
|
|
1278
1565
|
* 直接设置渲染用的媒体流(绑定管线和直接渲染共用)。 @internal
|
|
1279
1566
|
*/
|
|
@@ -1310,6 +1597,10 @@ declare class XmaxVideoView {
|
|
|
1310
1597
|
* 应用显示模式与镜像样式。
|
|
1311
1598
|
*/
|
|
1312
1599
|
private applyContentMode;
|
|
1600
|
+
/**
|
|
1601
|
+
* 视图未卸载时启动呈现统计,采样及媒体就绪检查由统计组件负责。
|
|
1602
|
+
*/
|
|
1603
|
+
private startRenderStatistics;
|
|
1313
1604
|
}
|
|
1314
1605
|
|
|
1315
1606
|
/**
|
|
@@ -1400,4 +1691,4 @@ declare class XmaxRealtimeVideoView {
|
|
|
1400
1691
|
private showRemoteVideo;
|
|
1401
1692
|
}
|
|
1402
1693
|
|
|
1403
|
-
export { CameraPosition,
|
|
1694
|
+
export { CameraPosition, MediaService, type MediaServicing, type NetworkQualityLevel, type NetworkStatistics, type NetworkStatisticsListener, NonRealtimeQuality, type NonRealtimeResult, type NonRealtimeTask, NonRealtimeTaskError, type NonRealtimeTaskListOptions, type NonRealtimeTaskOptions, type NonRealtimeTaskPage, NonRealtimeTaskStatus, type NonRealtimeWaitOptions, RealtimeConfiguration, RealtimeConnectionState, RealtimeContext, type RealtimeContextInit, type RealtimeLaunchTiming, type RealtimeLaunchTimingListener, RealtimeMediaStream, RealtimeModel, type RealtimeModelName, RealtimeReason, type RealtimeReferenceVideo, RealtimeState, type RealtimeStateListener, RealtimeVideoFormat, RealtimeVideoSampleMethod, RealtimeVideoTrack, type RemoteVideoStatistics, type RemoteVideoStatisticsListener, RtcProvider, StorageService, type StorageServicing, type StorageUploadOptions, StoredFile, VideoContentMode, VideoRenderStatistics, type VideoStatistics, type VideoStatisticsListener, XmaxClient, XmaxConfiguration, type XmaxConfigurationInit, XmaxEnvironment, XmaxError, XmaxErrorCode, type XmaxErrorListener, XmaxLogger, XmaxLoggerOption, type XmaxNonRealtimeManaging, type XmaxRealtimeManaging, XmaxRealtimeVideoView, XmaxVideoView, apiBaseURL, defaultCameraVideoFormat, defaultFrameRate, modelDisplayName, supportedRtcProviders };
|