@xmaxai/web-sdk 1.0.10 → 1.1.0
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 +225 -64
- package/dist/{TrajectoryEffectRendering-BKKPO7Uk.d.cts → TrajectoryEffectRendering-BdSJxHQw.d.cts} +24 -33
- package/dist/{TrajectoryEffectRendering-BKKPO7Uk.d.ts → TrajectoryEffectRendering-BdSJxHQw.d.ts} +24 -33
- package/dist/chunk-IJVTTKBG.js +14591 -0
- package/dist/chunk-IJVTTKBG.js.map +1 -0
- package/dist/chunk-WJOPIHWW.cjs +14591 -0
- package/dist/chunk-WJOPIHWW.cjs.map +1 -0
- package/dist/index.cjs +10 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +899 -325
- package/dist/index.d.ts +899 -325
- package/dist/index.js +19 -12
- package/dist/react/index.cjs +15 -10
- package/dist/react/index.cjs.map +1 -1
- package/dist/react/index.d.cts +16 -6
- package/dist/react/index.d.ts +16 -6
- package/dist/react/index.js +18 -13
- package/dist/react/index.js.map +1 -1
- package/package.json +9 -10
- package/dist/RecordingProcessor-4TP5NICO.cjs +0 -211
- package/dist/RecordingProcessor-4TP5NICO.cjs.map +0 -1
- package/dist/RecordingProcessor-ZSBJFF4J.js +0 -211
- package/dist/RecordingProcessor-ZSBJFF4J.js.map +0 -1
- package/dist/chunk-4DE2IREA.cjs +0 -8
- package/dist/chunk-4DE2IREA.cjs.map +0 -1
- package/dist/chunk-LOYJFYQT.js +0 -14968
- package/dist/chunk-LOYJFYQT.js.map +0 -1
- package/dist/chunk-UF2RD42G.cjs +0 -14968
- package/dist/chunk-UF2RD42G.cjs.map +0 -1
- package/dist/chunk-V6TY7KAL.js +0 -8
- package/dist/chunk-V6TY7KAL.js.map +0 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { R as RealtimeVideoFormat, a as RealtimeVideoTrack, C as CameraPosition, V as VideoContentMode, T as TrajectoryEffectRendering, b as VideoRenderStatistics } from './TrajectoryEffectRendering-
|
|
2
|
-
export {
|
|
1
|
+
import { R as RealtimeVideoFormat, a as RealtimeVideoTrack, C as CameraPosition, V as VideoContentMode, T as TrajectoryEffectRendering, b as VideoRenderStatistics, c as TrajectoryPoint, d as TrajectoryID } from './TrajectoryEffectRendering-BdSJxHQw.js';
|
|
2
|
+
export { e as RealtimeVideoEncoderPreference, f as RealtimeVideoFormatInit } from './TrajectoryEffectRendering-BdSJxHQw.js';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* 实时媒体使用的 RTC 提供方;一个 Manager 生命周期内保持不变。
|
|
@@ -23,22 +23,40 @@ declare enum RtcProvider {
|
|
|
23
23
|
* SDK 当前支持的实时生成模型。
|
|
24
24
|
*/
|
|
25
25
|
declare enum RealtimeModel {
|
|
26
|
-
|
|
27
|
-
|
|
26
|
+
/**
|
|
27
|
+
* 使用 VeRTC 的 X2.0 实时生成模型。
|
|
28
|
+
*/
|
|
29
|
+
x2_0 = "x2.0",
|
|
30
|
+
/**
|
|
31
|
+
* 使用 Agora 的 X2.1 实时生成模型。
|
|
32
|
+
*/
|
|
33
|
+
x2_1 = "x2.1"
|
|
28
34
|
}
|
|
29
|
-
/**
|
|
35
|
+
/**
|
|
36
|
+
* 内置模型或服务端新增的模型标识;自定义名称原样传给服务端。
|
|
37
|
+
*/
|
|
30
38
|
type RealtimeModelName = RealtimeModel | (string & {});
|
|
31
39
|
/**
|
|
32
40
|
* 模型输入画面的像素尺寸。
|
|
33
41
|
*/
|
|
34
42
|
interface ModelSize {
|
|
43
|
+
/**
|
|
44
|
+
* 视频宽度,单位为像素。
|
|
45
|
+
*/
|
|
35
46
|
width: number;
|
|
47
|
+
/**
|
|
48
|
+
* 视频高度,单位为像素。
|
|
49
|
+
*/
|
|
36
50
|
height: number;
|
|
37
51
|
}
|
|
38
52
|
/**
|
|
39
53
|
* 获取模型的显示名称。
|
|
40
54
|
*/
|
|
41
55
|
declare function modelDisplayName(model: RealtimeModelName): string;
|
|
56
|
+
/**
|
|
57
|
+
* 模型支持的固定视频规格;空列表表示按像素预算解析,帧率为推荐默认值。
|
|
58
|
+
*/
|
|
59
|
+
declare function supportedVideoFormats(model: RealtimeModelName): RealtimeVideoFormat[];
|
|
42
60
|
/**
|
|
43
61
|
* 未指定视频规格时,各媒体来源使用的默认帧率。
|
|
44
62
|
*/
|
|
@@ -49,7 +67,7 @@ declare function defaultFrameRate(_model: RealtimeModelName): number;
|
|
|
49
67
|
declare function defaultCameraVideoFormat(model: RealtimeModelName): RealtimeVideoFormat;
|
|
50
68
|
/**
|
|
51
69
|
* 查询 SDK 允许配置的 RTC 提供方,第一项为默认值。
|
|
52
|
-
*
|
|
70
|
+
* 未知模型默认使用 Agora,也允许显式选择其他已接入的 RTC;
|
|
53
71
|
* 是否被该模型的服务端支持,由服务端决定。
|
|
54
72
|
*/
|
|
55
73
|
declare function supportedRtcProviders(model: RealtimeModelName): readonly RtcProvider[];
|
|
@@ -59,15 +77,27 @@ declare function supportedRtcProviders(model: RealtimeModelName): readonly RtcPr
|
|
|
59
77
|
*/
|
|
60
78
|
interface MediaServicing {
|
|
61
79
|
/**
|
|
62
|
-
*
|
|
80
|
+
* 当前媒体规则使用的模型。
|
|
63
81
|
*/
|
|
64
|
-
|
|
82
|
+
readonly model: RealtimeModelName;
|
|
65
83
|
/**
|
|
66
|
-
*
|
|
84
|
+
* 解析原始媒体尺寸,不放大、限制像素面积并按 4 对齐;仅摄像头校验模型桶。
|
|
85
|
+
*
|
|
86
|
+
* @param sourceMediaSize 原始媒体尺寸。
|
|
87
|
+
* @param source 媒体来源,文件媒体和外部轨道接受任意比例。
|
|
88
|
+
* @returns 用于固定媒体基准和初始上行编码的尺寸。
|
|
67
89
|
*/
|
|
68
|
-
|
|
90
|
+
resolveMediaSize(sourceMediaSize: ModelSize, source: "camera" | "image" | "video" | "external"): ModelSize;
|
|
69
91
|
/**
|
|
70
|
-
*
|
|
92
|
+
* 为处理后的媒体选择模型生成画布,不改变本地媒体规格。
|
|
93
|
+
*/
|
|
94
|
+
resolveGenerationSize(resolvedMediaSize: ModelSize): ModelSize;
|
|
95
|
+
/**
|
|
96
|
+
* 根据固定媒体基准和下行尺寸上限计算 4 对齐回传尺寸。
|
|
97
|
+
*/
|
|
98
|
+
resolveTargetSize(resolvedMediaSize: ModelSize, maximumSize: ModelSize): ModelSize;
|
|
99
|
+
/**
|
|
100
|
+
* 解析模型支持的采集规格或生成画布,不处理媒体像素。
|
|
71
101
|
*
|
|
72
102
|
* 分辨率桶非空时必须精确匹配;否则按像素面积上下限等比缩放并对齐到
|
|
73
103
|
* 模型要求的像素倍数。
|
|
@@ -81,9 +111,6 @@ interface MediaServicing {
|
|
|
81
111
|
* 上传完成后返回的已存储文件信息。
|
|
82
112
|
*/
|
|
83
113
|
declare class StoredFile {
|
|
84
|
-
/**
|
|
85
|
-
* 存储结果
|
|
86
|
-
*/
|
|
87
114
|
/**
|
|
88
115
|
* 文件的访问地址。
|
|
89
116
|
*/
|
|
@@ -98,10 +125,6 @@ declare class StoredFile {
|
|
|
98
125
|
readonly etag?: string;
|
|
99
126
|
/**
|
|
100
127
|
* 创建已存储文件信息。
|
|
101
|
-
*
|
|
102
|
-
* @param init.url 文件访问地址。
|
|
103
|
-
* @param init.objectKey 对象键。
|
|
104
|
-
* @param init.etag 对象存储返回的 ETag。
|
|
105
128
|
*/
|
|
106
129
|
constructor(init: {
|
|
107
130
|
url: string;
|
|
@@ -175,87 +198,87 @@ interface StorageServicing {
|
|
|
175
198
|
*/
|
|
176
199
|
declare class RealtimeConfiguration {
|
|
177
200
|
/**
|
|
178
|
-
*
|
|
201
|
+
* 实时生成使用的模型;未知名称原样透传到测试环境,媒体与 RTC 默认配置同 X2.1。
|
|
179
202
|
*/
|
|
180
203
|
readonly model: RealtimeModelName;
|
|
181
204
|
/**
|
|
182
|
-
* 实时连接使用的 RTC
|
|
205
|
+
* 实时连接使用的 RTC 提供方,默认取模型支持列表的首项,创建后不可切换。
|
|
183
206
|
*/
|
|
184
207
|
readonly provider: RtcProvider;
|
|
185
208
|
/**
|
|
186
|
-
*
|
|
209
|
+
* 是否自动调整上下行档位,默认 true。关闭时从 L1 启动且不读写历史档位,仍支持手动调档。
|
|
187
210
|
*/
|
|
188
|
-
readonly
|
|
211
|
+
readonly isAdaptiveQualityEnabled: boolean;
|
|
189
212
|
/**
|
|
190
|
-
*
|
|
191
|
-
*
|
|
192
|
-
* @param init.model 实时生成业务使用的模型;未知名称原样透传,默认配置同 x2.1.1-preview-cn。
|
|
193
|
-
* @param init.provider RTC 提供方,默认按模型定义选择;必须受模型支持,创建后不可切换。
|
|
194
|
-
* @param init.isFrameInterpolationEnabled 是否默认开启远端生成画面的插帧,默认 false。
|
|
213
|
+
* 补全 RTC 和自动调档默认值,并校验模型名称与 RTC 提供方配置。
|
|
195
214
|
*/
|
|
196
215
|
constructor(init: {
|
|
197
216
|
model: RealtimeModelName;
|
|
198
217
|
provider?: RtcProvider;
|
|
199
|
-
|
|
218
|
+
isAdaptiveQualityEnabled?: boolean;
|
|
200
219
|
});
|
|
201
220
|
}
|
|
202
221
|
|
|
203
|
-
/** 输入帧顺时针旋转角度;与前置摄像头的水平镜像独立。 */
|
|
204
|
-
type CameraRotation = 0 | 90 | 180 | 270;
|
|
205
|
-
|
|
206
222
|
/**
|
|
207
|
-
*
|
|
223
|
+
* 输入帧顺时针旋转角度;与前置摄像头的水平镜像独立。
|
|
208
224
|
*/
|
|
209
|
-
type
|
|
225
|
+
type CameraRotation = 0 | 90 | 180 | 270;
|
|
226
|
+
|
|
210
227
|
/**
|
|
211
|
-
*
|
|
228
|
+
* 实时连接的网络质量等级。
|
|
212
229
|
*/
|
|
213
|
-
|
|
214
|
-
readonly uplinkQuality?: NetworkQualityLevel;
|
|
230
|
+
declare enum RealtimeNetworkQualityLevel {
|
|
215
231
|
/**
|
|
216
|
-
*
|
|
232
|
+
* 尚无有效的质量评估。
|
|
217
233
|
*/
|
|
218
|
-
|
|
234
|
+
unknown = "Unknown",
|
|
219
235
|
/**
|
|
220
|
-
*
|
|
236
|
+
* 网络质量极好。
|
|
221
237
|
*/
|
|
222
|
-
|
|
238
|
+
excellent = "Excellent",
|
|
223
239
|
/**
|
|
224
|
-
*
|
|
240
|
+
* 网络质量良好。
|
|
225
241
|
*/
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
242
|
+
good = "Good",
|
|
243
|
+
/**
|
|
244
|
+
* 网络质量一般,可能影响实时播放。
|
|
245
|
+
*/
|
|
246
|
+
poor = "Poor",
|
|
247
|
+
/**
|
|
248
|
+
* 网络质量差,影响实时播放。
|
|
249
|
+
*/
|
|
250
|
+
bad = "Bad",
|
|
251
|
+
/**
|
|
252
|
+
* 网络质量极差,可能严重中断媒体传输。
|
|
253
|
+
*/
|
|
254
|
+
veryBad = "VeryBad",
|
|
255
|
+
/**
|
|
256
|
+
* 网络连接已断开。
|
|
257
|
+
*/
|
|
258
|
+
down = "Down"
|
|
239
259
|
}
|
|
240
260
|
/**
|
|
241
|
-
*
|
|
261
|
+
* 本端 RTC 连接的网络统计,不依赖远端生成流是否已经到达。
|
|
242
262
|
*/
|
|
243
|
-
interface
|
|
263
|
+
interface RealtimeNetworkQuality {
|
|
244
264
|
/**
|
|
245
|
-
*
|
|
265
|
+
* 上行网络质量等级,沿用 RTC 厂商的评估结果。
|
|
246
266
|
*/
|
|
247
|
-
readonly
|
|
267
|
+
readonly uplink: RealtimeNetworkQualityLevel;
|
|
248
268
|
/**
|
|
249
|
-
*
|
|
269
|
+
* 所有下行连接的平均网络质量。
|
|
250
270
|
*/
|
|
251
|
-
readonly
|
|
271
|
+
readonly downlink: RealtimeNetworkQualityLevel;
|
|
252
272
|
}
|
|
273
|
+
/**
|
|
274
|
+
* undefined 表示尚无采样或连接已清理。
|
|
275
|
+
*/
|
|
276
|
+
type RealtimeNetworkQualityListener = (statistics: RealtimeNetworkQuality | undefined) => void;
|
|
253
277
|
|
|
278
|
+
/**
|
|
279
|
+
* 实时生成指令和参考资源。
|
|
280
|
+
*/
|
|
254
281
|
interface RealtimeContextInit {
|
|
255
|
-
/**
|
|
256
|
-
* 服务端直接读取的网络视频。
|
|
257
|
-
*/
|
|
258
|
-
referenceVideo?: RealtimeReferenceVideo;
|
|
259
282
|
/**
|
|
260
283
|
* 实时生成使用的文本条件。
|
|
261
284
|
*/
|
|
@@ -269,13 +292,6 @@ interface RealtimeContextInit {
|
|
|
269
292
|
* 单次实时生成任务的文本和参考资源上下文。
|
|
270
293
|
*/
|
|
271
294
|
declare class RealtimeContext {
|
|
272
|
-
/**
|
|
273
|
-
* 服务端直接读取的网络视频。
|
|
274
|
-
*/
|
|
275
|
-
readonly referenceVideo?: RealtimeReferenceVideo;
|
|
276
|
-
/**
|
|
277
|
-
* 生成条件
|
|
278
|
-
*/
|
|
279
295
|
/**
|
|
280
296
|
* 实时生成使用的文本条件。
|
|
281
297
|
*/
|
|
@@ -290,13 +306,143 @@ declare class RealtimeContext {
|
|
|
290
306
|
constructor(init: RealtimeContextInit);
|
|
291
307
|
}
|
|
292
308
|
|
|
293
|
-
/**
|
|
309
|
+
/**
|
|
310
|
+
* 可通过生成信令传递的 JSON 数据。
|
|
311
|
+
*/
|
|
294
312
|
type JsonValue = string | number | boolean | null | JsonValue[] | {
|
|
295
313
|
[key: string]: JsonValue;
|
|
296
314
|
};
|
|
297
|
-
/**
|
|
315
|
+
/**
|
|
316
|
+
* 合并到本次 start 或 change_condition 的 params;不缓存,不允许覆盖 SDK 字段。
|
|
317
|
+
*/
|
|
298
318
|
type RealtimeExtraParams = Record<string, JsonValue>;
|
|
299
319
|
|
|
320
|
+
/**
|
|
321
|
+
* 已复制的远端 PCM 音频包,格式为有符号、小端、交错排列的 16 位样本。
|
|
322
|
+
*/
|
|
323
|
+
interface RealtimeAudioFrame {
|
|
324
|
+
/**
|
|
325
|
+
* 音频字节;回调返回后仍可持有。
|
|
326
|
+
*/
|
|
327
|
+
readonly data: Uint8Array;
|
|
328
|
+
/**
|
|
329
|
+
* 每个声道每秒的样本数。
|
|
330
|
+
*/
|
|
331
|
+
readonly sampleRate: number;
|
|
332
|
+
/**
|
|
333
|
+
* 交错排列的声道数。
|
|
334
|
+
*/
|
|
335
|
+
readonly channels: number;
|
|
336
|
+
/**
|
|
337
|
+
* 本包每个声道的样本数。
|
|
338
|
+
*/
|
|
339
|
+
readonly samplesPerChannel: number;
|
|
340
|
+
/**
|
|
341
|
+
* 首个样本在接收端呈现时间轴上的时间,单位为微秒,不保证从零开始。
|
|
342
|
+
*/
|
|
343
|
+
readonly presentationTimeStamp: number;
|
|
344
|
+
/**
|
|
345
|
+
* 按样本数和采样率计算的时长,单位为微秒。
|
|
346
|
+
*/
|
|
347
|
+
readonly duration: number;
|
|
348
|
+
}
|
|
349
|
+
/**
|
|
350
|
+
* 原始远端解码视频帧,不包含镜像、裁剪或界面叠层。
|
|
351
|
+
*/
|
|
352
|
+
interface RealtimeVideoFrame {
|
|
353
|
+
/**
|
|
354
|
+
* 由接入方持有的只读帧;使用或异步编码完成后必须调用 close()。
|
|
355
|
+
*/
|
|
356
|
+
readonly frame: VideoFrame;
|
|
357
|
+
/**
|
|
358
|
+
* 接收端呈现时间轴上的时间,单位为微秒,与音频使用相同时间基准。
|
|
359
|
+
*/
|
|
360
|
+
readonly presentationTimeStamp: number;
|
|
361
|
+
/**
|
|
362
|
+
* 建议呈现时长,单位为微秒;无法确定时为空。
|
|
363
|
+
*/
|
|
364
|
+
readonly duration?: number;
|
|
365
|
+
}
|
|
366
|
+
/**
|
|
367
|
+
* 一包远端媒体,不表示一对音视频帧;按同一个录制起点和时间戳进行同步。
|
|
368
|
+
*/
|
|
369
|
+
interface RealtimeMediaFrame {
|
|
370
|
+
/**
|
|
371
|
+
* 同一结果流绑定的音视频共享标识;换流或重连后更新。
|
|
372
|
+
*/
|
|
373
|
+
readonly streamID: string;
|
|
374
|
+
/**
|
|
375
|
+
* 当前轨首次输出、格式/时钟变化或丢弃输出后为 true;SDK 不压缩时间轴。
|
|
376
|
+
*/
|
|
377
|
+
readonly isDiscontinuous: boolean;
|
|
378
|
+
/**
|
|
379
|
+
* 音频包或视频帧。
|
|
380
|
+
*/
|
|
381
|
+
readonly content: {
|
|
382
|
+
readonly type: "audio";
|
|
383
|
+
readonly frame: RealtimeAudioFrame;
|
|
384
|
+
} | {
|
|
385
|
+
readonly type: "video";
|
|
386
|
+
readonly frame: RealtimeVideoFrame;
|
|
387
|
+
};
|
|
388
|
+
/**
|
|
389
|
+
* 媒体时间戳,单位为微秒,与 content.frame.presentationTimeStamp 一致。
|
|
390
|
+
*/
|
|
391
|
+
readonly presentationTimeStamp: number;
|
|
392
|
+
/**
|
|
393
|
+
* 包时长,单位为微秒;视频无法确定时为空。
|
|
394
|
+
*/
|
|
395
|
+
readonly duration?: number;
|
|
396
|
+
}
|
|
397
|
+
/**
|
|
398
|
+
* 按交付顺序接收媒体,不保证跨音视频轨的时间戳顺序。
|
|
399
|
+
* 回调须保持轻量,异步处理请自行排队;视频帧所有权转移给接入方,音频可直接保留。
|
|
400
|
+
*/
|
|
401
|
+
type RealtimeMediaFrameListener = (frame: RealtimeMediaFrame) => void;
|
|
402
|
+
|
|
403
|
+
/**
|
|
404
|
+
* 当前结果流的原始媒体轨,仅借用,不转移 RTC 轨道所有权。
|
|
405
|
+
*/
|
|
406
|
+
interface RemoteMediaTracks {
|
|
407
|
+
/**
|
|
408
|
+
* 生成任务的绑定标识,用于隔离同一 RTC 轨上的不同任务。
|
|
409
|
+
*/
|
|
410
|
+
readonly bindingID: string;
|
|
411
|
+
/**
|
|
412
|
+
* 实际结果流的 RTC 用户。
|
|
413
|
+
*/
|
|
414
|
+
readonly userID: string;
|
|
415
|
+
/**
|
|
416
|
+
* 订阅到的远端原始视频轨。
|
|
417
|
+
*/
|
|
418
|
+
readonly videoTrack: MediaStreamTrack;
|
|
419
|
+
/**
|
|
420
|
+
* 播放音量处理前的远端音轨;音频尚未发布或没有音轨时为空。
|
|
421
|
+
*/
|
|
422
|
+
readonly audioTrack?: MediaStreamTrack;
|
|
423
|
+
}
|
|
424
|
+
|
|
425
|
+
/**
|
|
426
|
+
* 实时生成输入/输出的媒体流。
|
|
427
|
+
*/
|
|
428
|
+
declare class RealtimeMediaStream {
|
|
429
|
+
/**
|
|
430
|
+
* 媒体流标识。
|
|
431
|
+
*/
|
|
432
|
+
readonly id: string;
|
|
433
|
+
/**
|
|
434
|
+
* 媒体流包含的视频轨道。
|
|
435
|
+
*/
|
|
436
|
+
readonly videoTrack?: RealtimeVideoTrack;
|
|
437
|
+
/**
|
|
438
|
+
* 创建实时媒体流。
|
|
439
|
+
*/
|
|
440
|
+
constructor(init: {
|
|
441
|
+
id: string;
|
|
442
|
+
videoTrack?: RealtimeVideoTrack;
|
|
443
|
+
});
|
|
444
|
+
}
|
|
445
|
+
|
|
300
446
|
/**
|
|
301
447
|
* SDK 向接入方暴露的统一错误码。
|
|
302
448
|
*/
|
|
@@ -333,10 +479,6 @@ declare enum XmaxErrorCode {
|
|
|
333
479
|
* 本地媒体读取、解码、同步或帧处理发生错误。
|
|
334
480
|
*/
|
|
335
481
|
mediaError = "MEDIA_ERROR",
|
|
336
|
-
/**
|
|
337
|
-
* 当前系统、设备或视频规格不支持远端视频插帧。
|
|
338
|
-
*/
|
|
339
|
-
frameInterpolationUnsupported = "FRAME_INTERPOLATION_UNSUPPORTED",
|
|
340
482
|
/**
|
|
341
483
|
* 接入方未授予相机权限。
|
|
342
484
|
*/
|
|
@@ -378,9 +520,6 @@ type XmaxErrorListener = (error: XmaxError) => void;
|
|
|
378
520
|
* 表示 SDK 抛出或回调给接入方的统一错误。
|
|
379
521
|
*/
|
|
380
522
|
declare class XmaxError extends Error {
|
|
381
|
-
/**
|
|
382
|
-
* 错误信息
|
|
383
|
-
*/
|
|
384
523
|
/**
|
|
385
524
|
* SDK 统一错误码。
|
|
386
525
|
*/
|
|
@@ -413,84 +552,6 @@ declare class XmaxError extends Error {
|
|
|
413
552
|
static from(error: unknown): XmaxError;
|
|
414
553
|
}
|
|
415
554
|
|
|
416
|
-
/**
|
|
417
|
-
* 单次录制的最终事件类型。
|
|
418
|
-
*/
|
|
419
|
-
declare enum RealtimeRecordingEventType {
|
|
420
|
-
completed = "completed",
|
|
421
|
-
interrupted = "interrupted",
|
|
422
|
-
failed = "failed"
|
|
423
|
-
}
|
|
424
|
-
/**
|
|
425
|
-
* 已完成文件封装的录制结束原因。
|
|
426
|
-
*/
|
|
427
|
-
declare enum RealtimeRecordingFinishReason {
|
|
428
|
-
durationLimit = "durationLimit",
|
|
429
|
-
generationEnded = "generationEnded",
|
|
430
|
-
restarted = "restarted",
|
|
431
|
-
mediaInterrupted = "mediaInterrupted"
|
|
432
|
-
}
|
|
433
|
-
/**
|
|
434
|
-
* 已封装的录制文件;格式由 blob.type 指示,不保证为 MP4。
|
|
435
|
-
*/
|
|
436
|
-
interface RealtimeRecordingResult {
|
|
437
|
-
/**
|
|
438
|
-
* 可供保存、上传或预览的完整文件;成功裁去长帧等待时,时长短于实际录制时间。
|
|
439
|
-
*/
|
|
440
|
-
readonly blob: Blob;
|
|
441
|
-
/**
|
|
442
|
-
* 录制期间是否接入过未静音的远端音频轨;不表示内容一定有声音。
|
|
443
|
-
*/
|
|
444
|
-
readonly hasAudio: boolean;
|
|
445
|
-
/**
|
|
446
|
-
* 录制结束原因。
|
|
447
|
-
*/
|
|
448
|
-
readonly reason: RealtimeRecordingFinishReason;
|
|
449
|
-
}
|
|
450
|
-
/**
|
|
451
|
-
* 录制终态;成功封装的提前结束返回 interrupted,无法提供有效文件返回 failed。
|
|
452
|
-
*/
|
|
453
|
-
type RealtimeRecordingEvent = {
|
|
454
|
-
type: RealtimeRecordingEventType.completed | RealtimeRecordingEventType.interrupted;
|
|
455
|
-
taskID: string;
|
|
456
|
-
result: RealtimeRecordingResult;
|
|
457
|
-
} | {
|
|
458
|
-
type: RealtimeRecordingEventType.failed;
|
|
459
|
-
taskID: string;
|
|
460
|
-
error: XmaxError;
|
|
461
|
-
};
|
|
462
|
-
/**
|
|
463
|
-
* 每次录制交付一次最终事件,监听器异常不影响实时生成。
|
|
464
|
-
*/
|
|
465
|
-
type RealtimeRecordingListener = (event: RealtimeRecordingEvent) => void;
|
|
466
|
-
|
|
467
|
-
/**
|
|
468
|
-
* 实时生成输入/输出的媒体流。
|
|
469
|
-
*/
|
|
470
|
-
declare class RealtimeMediaStream {
|
|
471
|
-
/**
|
|
472
|
-
* 流标识与轨道
|
|
473
|
-
*/
|
|
474
|
-
/**
|
|
475
|
-
* 媒体流标识。
|
|
476
|
-
*/
|
|
477
|
-
readonly id: string;
|
|
478
|
-
/**
|
|
479
|
-
* 媒体流包含的视频轨道。
|
|
480
|
-
*/
|
|
481
|
-
readonly videoTrack?: RealtimeVideoTrack;
|
|
482
|
-
/**
|
|
483
|
-
* 创建实时媒体流。
|
|
484
|
-
*
|
|
485
|
-
* @param init.id 媒体流标识。
|
|
486
|
-
* @param init.videoTrack 媒体流包含的视频轨道。
|
|
487
|
-
*/
|
|
488
|
-
constructor(init: {
|
|
489
|
-
id: string;
|
|
490
|
-
videoTrack?: RealtimeVideoTrack;
|
|
491
|
-
});
|
|
492
|
-
}
|
|
493
|
-
|
|
494
555
|
/**
|
|
495
556
|
* 实时业务连接状态。
|
|
496
557
|
*/
|
|
@@ -540,6 +601,9 @@ type RealtimeReason = {
|
|
|
540
601
|
kind: "failure";
|
|
541
602
|
error: XmaxError;
|
|
542
603
|
};
|
|
604
|
+
/**
|
|
605
|
+
* 正常操作、画面方向变化和错误对应的状态原因。
|
|
606
|
+
*/
|
|
543
607
|
declare const RealtimeReason: {
|
|
544
608
|
normal: RealtimeReason;
|
|
545
609
|
orientationChanged: RealtimeReason;
|
|
@@ -548,26 +612,35 @@ declare const RealtimeReason: {
|
|
|
548
612
|
*/
|
|
549
613
|
failure(error: XmaxError): RealtimeReason;
|
|
550
614
|
};
|
|
615
|
+
/**
|
|
616
|
+
* 实时状态快照的生命周期、业务标识和变化原因。
|
|
617
|
+
*/
|
|
551
618
|
interface RealtimeStateInit {
|
|
619
|
+
/**
|
|
620
|
+
* 当前实时连接生命周期状态。
|
|
621
|
+
*/
|
|
552
622
|
connectionState: RealtimeConnectionState;
|
|
623
|
+
/**
|
|
624
|
+
* 业务会话标识。
|
|
625
|
+
*/
|
|
553
626
|
sessionID?: string;
|
|
627
|
+
/**
|
|
628
|
+
* 当前生成任务标识。
|
|
629
|
+
*/
|
|
554
630
|
taskID?: string;
|
|
631
|
+
/**
|
|
632
|
+
* 当前操作的结束或变更原因。
|
|
633
|
+
*/
|
|
555
634
|
reason?: RealtimeReason;
|
|
556
635
|
}
|
|
557
636
|
/**
|
|
558
637
|
* 实时业务当前状态快照。
|
|
559
638
|
*/
|
|
560
639
|
declare class RealtimeState {
|
|
561
|
-
/**
|
|
562
|
-
* 连接生命周期
|
|
563
|
-
*/
|
|
564
640
|
/**
|
|
565
641
|
* 当前连接生命周期状态。
|
|
566
642
|
*/
|
|
567
643
|
readonly connectionState: RealtimeConnectionState;
|
|
568
|
-
/**
|
|
569
|
-
* 业务标识
|
|
570
|
-
*/
|
|
571
644
|
/**
|
|
572
645
|
* 当前或最近一次实时 Session 标识。
|
|
573
646
|
*/
|
|
@@ -576,20 +649,12 @@ declare class RealtimeState {
|
|
|
576
649
|
* 当前生成任务标识。
|
|
577
650
|
*/
|
|
578
651
|
readonly taskID?: string;
|
|
579
|
-
/**
|
|
580
|
-
* 状态变化原因
|
|
581
|
-
*/
|
|
582
652
|
/**
|
|
583
653
|
* 进入当前状态的原因;正常开始新的操作时清空。
|
|
584
654
|
*/
|
|
585
655
|
readonly reason?: RealtimeReason;
|
|
586
656
|
/**
|
|
587
657
|
* 创建实时状态快照。
|
|
588
|
-
*
|
|
589
|
-
* @param init.connectionState 当前连接生命周期状态。
|
|
590
|
-
* @param init.sessionID 当前或最近一次实时 Session 标识。
|
|
591
|
-
* @param init.taskID 当前生成任务标识。
|
|
592
|
-
* @param init.reason 状态变化原因,默认无。
|
|
593
658
|
*/
|
|
594
659
|
constructor(init: RealtimeStateInit);
|
|
595
660
|
/**
|
|
@@ -605,11 +670,11 @@ declare class RealtimeState {
|
|
|
605
670
|
type RealtimeStateListener = (state: RealtimeState) => void;
|
|
606
671
|
|
|
607
672
|
/**
|
|
608
|
-
*
|
|
609
|
-
*
|
|
673
|
+
* 一次媒体启动的耗时快照,单位为毫秒;undefined 表示该阶段尚未完成或未启用。
|
|
674
|
+
* 新一轮创建媒体源时重置;失败、关闭或断开后保留已完成的值。
|
|
610
675
|
* 仅预览时不产生首帧和总耗时;预览后手动启动生成的等待计入总耗时。
|
|
611
676
|
*/
|
|
612
|
-
interface
|
|
677
|
+
interface RealtimeTiming {
|
|
613
678
|
/**
|
|
614
679
|
* 开始打开摄像头到相机流创建完成(包含权限等待)。
|
|
615
680
|
*/
|
|
@@ -647,52 +712,70 @@ interface RealtimeLaunchTiming {
|
|
|
647
712
|
/**
|
|
648
713
|
* 阶段完成时提供完整快照;不支持帧回调的浏览器以 playing 近似首帧。
|
|
649
714
|
*/
|
|
650
|
-
type
|
|
715
|
+
type RealtimeTimingListener = (timing: RealtimeTiming) => void;
|
|
651
716
|
|
|
652
717
|
/**
|
|
653
|
-
*
|
|
718
|
+
* 上下行视频统计共用的媒体指标;缺失或无效指标为 undefined。
|
|
654
719
|
*/
|
|
655
720
|
interface VideoStatistics {
|
|
656
721
|
/**
|
|
657
|
-
*
|
|
722
|
+
* 视频实际宽度,单位为像素;本地为发送尺寸,远端为接收尺寸。
|
|
658
723
|
*/
|
|
659
|
-
readonly uplinkLossPercent?: number;
|
|
660
724
|
readonly width?: number;
|
|
661
|
-
readonly height?: number;
|
|
662
725
|
/**
|
|
663
|
-
*
|
|
726
|
+
* 视频实际高度,单位为像素;本地为发送尺寸,远端为接收尺寸。
|
|
664
727
|
*/
|
|
665
|
-
readonly
|
|
728
|
+
readonly height?: number;
|
|
666
729
|
/**
|
|
667
730
|
* 实际码率,单位 kbps。
|
|
668
731
|
*/
|
|
669
732
|
readonly bitrateKbps?: number;
|
|
670
733
|
}
|
|
734
|
+
/**
|
|
735
|
+
* 本地视频流的上行运行统计。
|
|
736
|
+
*/
|
|
737
|
+
interface UplinkVideoStatistics extends VideoStatistics {
|
|
738
|
+
/**
|
|
739
|
+
* 实际采集帧率,单位 fps。
|
|
740
|
+
*/
|
|
741
|
+
readonly captureFrameRate?: number;
|
|
742
|
+
/**
|
|
743
|
+
* 实际编码帧率,单位 fps;厂商未提供时为空,不以发送帧率替代。
|
|
744
|
+
*/
|
|
745
|
+
readonly encodeFrameRate?: number;
|
|
746
|
+
/**
|
|
747
|
+
* 实际发送帧率,单位 fps。
|
|
748
|
+
*/
|
|
749
|
+
readonly sendFrameRate?: number;
|
|
750
|
+
/**
|
|
751
|
+
* 本端到 RTC 云端的视频上行丢包率,范围为 0~100,单位 %。
|
|
752
|
+
*/
|
|
753
|
+
readonly packetLossPercent?: number;
|
|
754
|
+
}
|
|
671
755
|
/**
|
|
672
756
|
* undefined 表示当前没有可用统计(尚未发布、断开或停止)。
|
|
673
757
|
*/
|
|
674
|
-
type
|
|
758
|
+
type UplinkVideoStatisticsListener = (statistics: UplinkVideoStatistics | undefined) => void;
|
|
675
759
|
/**
|
|
676
760
|
* 一路远端主视频流的接收统计。
|
|
677
761
|
*/
|
|
678
|
-
interface
|
|
679
|
-
readonly userID: string;
|
|
762
|
+
interface DownlinkVideoStatistics extends VideoStatistics {
|
|
680
763
|
/**
|
|
681
|
-
*
|
|
764
|
+
* RTC 用户标识。
|
|
682
765
|
*/
|
|
683
|
-
readonly
|
|
766
|
+
readonly userID: string;
|
|
684
767
|
/**
|
|
685
|
-
*
|
|
768
|
+
* 实际解码帧率,单位 fps。
|
|
686
769
|
*/
|
|
687
|
-
readonly
|
|
770
|
+
readonly decodeFrameRate?: number;
|
|
688
771
|
/**
|
|
689
|
-
* RTC
|
|
772
|
+
* RTC 渲染帧率,单位 fps。
|
|
690
773
|
*/
|
|
691
|
-
readonly
|
|
774
|
+
readonly renderFrameRate?: number;
|
|
692
775
|
/**
|
|
693
|
-
*
|
|
776
|
+
* RTC 云端到本端 SDK 的视频下行丢包率,范围为 0~100,单位 %。
|
|
694
777
|
*/
|
|
695
|
-
readonly
|
|
778
|
+
readonly packetLossPercent?: number;
|
|
696
779
|
/**
|
|
697
780
|
* RTC 媒体端到端延迟估算值,单位 ms;不代表完整 AI 处理链路耗时。
|
|
698
781
|
* 采用各厂商原生口径,Agora end2EndDelay 不包含编码与解码耗时。
|
|
@@ -702,42 +785,222 @@ interface RemoteVideoStatistics extends VideoStatistics {
|
|
|
702
785
|
/**
|
|
703
786
|
* undefined 表示当前结果流没有统计或已被清理。
|
|
704
787
|
*/
|
|
705
|
-
type
|
|
788
|
+
type DownlinkVideoStatisticsListener = (statistics: DownlinkVideoStatistics | undefined) => void;
|
|
789
|
+
|
|
790
|
+
/**
|
|
791
|
+
* 摄像头分辨率快捷选项;实际支持范围由模型决定。
|
|
792
|
+
*/
|
|
793
|
+
declare enum RealtimeCameraPreset {
|
|
794
|
+
/**
|
|
795
|
+
* 16:9 横向画面。
|
|
796
|
+
*/
|
|
797
|
+
resolution1920x1080 = "1920x1080",
|
|
798
|
+
/**
|
|
799
|
+
* 9:16 竖向画面。
|
|
800
|
+
*/
|
|
801
|
+
resolution1080x1920 = "1080x1920",
|
|
802
|
+
/**
|
|
803
|
+
* 1:1 正方形画面。
|
|
804
|
+
*/
|
|
805
|
+
resolution1408x1408 = "1408x1408",
|
|
806
|
+
/**
|
|
807
|
+
* 3:4 竖向画面。
|
|
808
|
+
*/
|
|
809
|
+
resolution1152x1536 = "1152x1536",
|
|
810
|
+
/**
|
|
811
|
+
* 4:3 横向画面。
|
|
812
|
+
*/
|
|
813
|
+
resolution1536x1152 = "1536x1152"
|
|
814
|
+
}
|
|
815
|
+
/**
|
|
816
|
+
* 读取预设的像素宽高,不包含帧率和码率配置。
|
|
817
|
+
*/
|
|
818
|
+
declare function cameraPresetSize(preset: RealtimeCameraPreset): ModelSize;
|
|
819
|
+
|
|
820
|
+
/**
|
|
821
|
+
* 实时传输档位;L1 质量最高,L5 最节省带宽,与网络质量评级无关。
|
|
822
|
+
*/
|
|
823
|
+
declare enum RealtimeQualityLevel {
|
|
824
|
+
/**
|
|
825
|
+
* 保留媒体基准尺寸。
|
|
826
|
+
*/
|
|
827
|
+
l1 = 1,
|
|
828
|
+
/**
|
|
829
|
+
* 目标宽高为媒体基准的 90%。
|
|
830
|
+
*/
|
|
831
|
+
l2 = 2,
|
|
832
|
+
/**
|
|
833
|
+
* 目标宽高为媒体基准的 75%。
|
|
834
|
+
*/
|
|
835
|
+
l3 = 3,
|
|
836
|
+
/**
|
|
837
|
+
* 目标宽高为媒体基准的 60%。
|
|
838
|
+
*/
|
|
839
|
+
l4 = 4,
|
|
840
|
+
/**
|
|
841
|
+
* 目标宽高为媒体基准的 50%,上行帧率上限为 16 fps。
|
|
842
|
+
*/
|
|
843
|
+
l5 = 5
|
|
844
|
+
}
|
|
845
|
+
|
|
846
|
+
/**
|
|
847
|
+
* 外部 PCM 帧的只读输入契约,浏览器 AudioData 可直接传入。
|
|
848
|
+
* 使用结构类型,避免要求接入方额外安装 WebCodecs 全局类型。
|
|
849
|
+
*/
|
|
850
|
+
interface RealtimeExternalAudioFrame {
|
|
851
|
+
/**
|
|
852
|
+
* 共用源时间轴上的微秒时间戳及固定 PCM 规格。
|
|
853
|
+
*/
|
|
854
|
+
readonly timestamp: number;
|
|
855
|
+
readonly sampleRate: number;
|
|
856
|
+
readonly numberOfChannels: number;
|
|
857
|
+
readonly numberOfFrames: number;
|
|
858
|
+
readonly format: string | null;
|
|
859
|
+
/**
|
|
860
|
+
* 将指定声道复制为平面浮点 PCM;返回后 SDK 不再访问原始样本。
|
|
861
|
+
*/
|
|
862
|
+
copyTo(destination: Float32Array, options: {
|
|
863
|
+
planeIndex: number;
|
|
864
|
+
format: "f32-planar";
|
|
865
|
+
}): void;
|
|
866
|
+
}
|
|
867
|
+
|
|
868
|
+
/**
|
|
869
|
+
* 外部帧源与兼容视频轨入口二选一,禁止混用两套所有权和生命周期。
|
|
870
|
+
*/
|
|
871
|
+
type RealtimeExternalVideoStreamOptions = {
|
|
872
|
+
source: RealtimeExternalVideoSource;
|
|
873
|
+
videoTrack?: never;
|
|
874
|
+
videoFormat?: never;
|
|
875
|
+
} | {
|
|
876
|
+
videoTrack: MediaStreamTrack;
|
|
877
|
+
videoFormat: RealtimeVideoFormat;
|
|
878
|
+
source?: never;
|
|
879
|
+
};
|
|
880
|
+
/**
|
|
881
|
+
* 接入方拥有的外部采集、解码或处理源;SDK 不申请设备权限,也不播放输入音频。
|
|
882
|
+
* videoFormat 和 hasAudio 在一次绑定内保持不变,音视频时间戳使用同一单调时间轴。
|
|
883
|
+
*/
|
|
884
|
+
interface RealtimeExternalVideoSource {
|
|
885
|
+
/**
|
|
886
|
+
* 原始视频尺寸、帧率及编码配置;方向和镜像由接入方处理到像素中。
|
|
887
|
+
*/
|
|
888
|
+
readonly videoFormat: RealtimeVideoFormat;
|
|
889
|
+
/**
|
|
890
|
+
* 是否通过 sink 提交音频,默认 false。
|
|
891
|
+
*/
|
|
892
|
+
readonly hasAudio?: boolean;
|
|
893
|
+
/**
|
|
894
|
+
* 安装帧回调并在源可交付后返回;不要等待首帧或生成开始。
|
|
895
|
+
* 接入方按实时节奏提交,断开连接时可继续送视频以维持预览。
|
|
896
|
+
*/
|
|
897
|
+
start(sink: RealtimeExternalFrameSink): Promise<void>;
|
|
898
|
+
/**
|
|
899
|
+
* 停止交付并解除 sink 引用,须可重复调用;采集设备及播放器仍归接入方管理。
|
|
900
|
+
*/
|
|
901
|
+
stop(): Promise<void>;
|
|
902
|
+
}
|
|
903
|
+
/**
|
|
904
|
+
* 一次外部源绑定的输入端;可在提交返回后 close 原帧,SDK 不接管原帧所有权。
|
|
905
|
+
* VideoFrame.timestamp 和 AudioData.timestamp 均为非负微秒时间,不能跨循环或 seek 回退。
|
|
906
|
+
*/
|
|
907
|
+
interface RealtimeExternalFrameSink {
|
|
908
|
+
/**
|
|
909
|
+
* 经过像素面积约束和 4 对齐的固定媒体规格;提交时仍使用 source.videoFormat 的尺寸。
|
|
910
|
+
*/
|
|
911
|
+
readonly videoFormat: RealtimeVideoFormat;
|
|
912
|
+
/**
|
|
913
|
+
* 是否接受输入;断开时仍为 true,解绑或源失败后永久变为 false。
|
|
914
|
+
*/
|
|
915
|
+
readonly isRequestingFrames: boolean;
|
|
916
|
+
/**
|
|
917
|
+
* 提交原始尺寸的视频帧;SDK 保留副本并缩放到媒体规格,不保证交付每个输入帧。
|
|
918
|
+
* 重复、回退或无效时间戳被忽略。输入需按实时节奏送达,提前量不得超过两秒。
|
|
919
|
+
*/
|
|
920
|
+
pushVideo(frame: VideoFrame): void;
|
|
921
|
+
/**
|
|
922
|
+
* 提交解码后的 PCM,仅 hasAudio=true 时接受;不接收压缩音频。
|
|
923
|
+
* 支持 8–192 kHz、1–8 声道,单包不超过一秒;格式在一次绑定内保持不变。
|
|
924
|
+
* SDK 复制并混成单声道,经 AudioWorklet 重采样和调度;仅发布期间上传,不缓存待重连。
|
|
925
|
+
* 音频重叠或无效时间戳被忽略,间断在浏览器连续音轨中输出静音,不压缩时间轴。
|
|
926
|
+
*/
|
|
927
|
+
pushAudio(frame: RealtimeExternalAudioFrame): void;
|
|
928
|
+
/**
|
|
929
|
+
* 上报不可恢复的采集或处理错误;SDK 结束连接并释放本地流。
|
|
930
|
+
*/
|
|
931
|
+
reportError(error: Error): void;
|
|
932
|
+
}
|
|
706
933
|
|
|
707
934
|
/**
|
|
708
935
|
* 定义 SDK 对接入方提供的实时媒体与生成控制能力。
|
|
709
936
|
*/
|
|
710
937
|
interface XmaxRealtimeManaging {
|
|
711
938
|
/**
|
|
712
|
-
*
|
|
939
|
+
* 观察当前生成结果的原始 Web 音视频轨道,立即回放当前绑定。
|
|
940
|
+
* 不依赖 WebCodecs;适用于 MediaRecorder 等原生媒体流处理。
|
|
941
|
+
* 轨道仅借用;需要停止或修改时应先 clone(),不得停止 SDK 的原始轨道。
|
|
942
|
+
* 无结果流时回调 undefined;传 undefined 取消监听,不影响订阅、音量或生成。
|
|
943
|
+
* 可与原始帧监听并存,close() 时自动清除。
|
|
713
944
|
*/
|
|
714
|
-
|
|
945
|
+
setRemoteMediaTracksListener(listener?: (tracks?: RemoteMediaTracks) => void): void;
|
|
946
|
+
/**
|
|
947
|
+
* 监听当前结果流的原始解码视频和播放音量处理前的 PCM 音频。
|
|
948
|
+
* 两轨共用接收端呈现时间轴,单位为微秒;按时间戳同步,不按回调到达时间配对。
|
|
949
|
+
* 视频帧交付后由接入方 close();回调须保持轻量,队列超限或换流会标记不连续。
|
|
950
|
+
* 从用户手势调用并等待准备完成;不支持的浏览器或 RTC 平台会拒绝,不终止生成。
|
|
951
|
+
* 可在生成前或生成中设置;undefined 取消并释放资源,不改变音量、订阅和生成任务。
|
|
952
|
+
* 浏览器呈现回调可能漏帧,不保证交付全部接收或解码帧;没有音轨时不补静音包。
|
|
953
|
+
*/
|
|
954
|
+
setRemoteMediaFrameListener(listener?: RealtimeMediaFrameListener): Promise<void>;
|
|
715
955
|
/**
|
|
716
956
|
* 实时能力配置。
|
|
717
957
|
*/
|
|
718
958
|
readonly options: RealtimeConfiguration;
|
|
719
959
|
/**
|
|
720
|
-
* 当前实时连接与生成状态。
|
|
960
|
+
* 当前实时连接与生成状态。
|
|
961
|
+
*/
|
|
962
|
+
readonly currentState: RealtimeState;
|
|
963
|
+
/**
|
|
964
|
+
* 当前摄像头媒体规格,不随上行调档变化;没有摄像头流时为空。
|
|
965
|
+
*/
|
|
966
|
+
readonly currentCameraVideoFormat?: RealtimeVideoFormat;
|
|
967
|
+
/**
|
|
968
|
+
* 当前摄像头尺寸匹配的预设;没有摄像头或尺寸未匹配预设时为空。
|
|
969
|
+
*/
|
|
970
|
+
readonly currentCameraPreset?: RealtimeCameraPreset;
|
|
971
|
+
/**
|
|
972
|
+
* 更新预览就绪且未连接的摄像头规格,保留 SDK 轨道与视图绑定。
|
|
973
|
+
* 传入预设时保留当前帧率、码率和编码偏好,尺寸仍按模型规则解析。
|
|
974
|
+
*/
|
|
975
|
+
updateCameraFormat(format: RealtimeVideoFormat | RealtimeCameraPreset): Promise<void>;
|
|
976
|
+
/**
|
|
977
|
+
* 当前连接成功应用的上行档位;未连接、断开或没有本地上行时为空。
|
|
978
|
+
*/
|
|
979
|
+
readonly uplinkQualityLevel?: RealtimeQualityLevel;
|
|
980
|
+
/**
|
|
981
|
+
* 当前连接成功提交的下行档位;尚未开始生成、未连接或断开时为空,实际回传可能稍晚生效。
|
|
721
982
|
*/
|
|
722
|
-
readonly
|
|
983
|
+
readonly downlinkQualityLevel?: RealtimeQualityLevel;
|
|
723
984
|
/**
|
|
724
|
-
*
|
|
985
|
+
* 在生成中指定上行编码档位,不改变媒体采集规格和生成画布。
|
|
986
|
+
* Agora、TRTC 的自动调档从新档位继续;VeRTC 仅应用手动档位。
|
|
725
987
|
*/
|
|
726
|
-
|
|
988
|
+
setUplinkQualityLevel(level: RealtimeQualityLevel): Promise<void>;
|
|
727
989
|
/**
|
|
728
|
-
*
|
|
990
|
+
* 在生成中指定下行回传档位;已启用自动调档时,从新档位继续判断。
|
|
991
|
+
* 发送成功表示请求已提交,不代表服务端已经返回新尺寸。
|
|
729
992
|
*/
|
|
730
|
-
|
|
993
|
+
setDownlinkQualityLevel(level: RealtimeQualityLevel): Promise<void>;
|
|
731
994
|
/**
|
|
732
|
-
*
|
|
733
|
-
* Agora 调整分辨率、帧率和编码码率;TRTC
|
|
734
|
-
* 保留原始 L1
|
|
995
|
+
* 手动升/降一档上行配置,需要正在生成且存在本地上行。
|
|
996
|
+
* Agora、VeRTC 调整分辨率、帧率和编码码率;TRTC 只调整帧率,保留尺寸和码率配置。
|
|
997
|
+
* 保留原始 L1 基准,不改变下行尺寸;已启用的自动调档保持开启。
|
|
735
998
|
* @param direction 升一档或降一档;到达 L1/L5 边界时不重复应用。
|
|
736
999
|
*/
|
|
737
1000
|
adjustUplinkQuality(direction: "upgrade" | "downgrade"): Promise<void>;
|
|
738
1001
|
/**
|
|
739
|
-
*
|
|
740
|
-
*
|
|
1002
|
+
* 手动升/降一档下行输出尺寸,需要正在生成。
|
|
1003
|
+
* 仅改变分辨率,成功发送后同步目标档位;已启用的自动调档保持开启。
|
|
741
1004
|
* 到达 L1/L5 边界时不重复发送;发送成功不代表服务端已生效。
|
|
742
1005
|
*/
|
|
743
1006
|
adjustDownlinkQuality(direction: "upgrade" | "downgrade"): Promise<void>;
|
|
@@ -755,29 +1018,30 @@ interface XmaxRealtimeManaging {
|
|
|
755
1018
|
*/
|
|
756
1019
|
setStateListener(listener?: RealtimeStateListener): Promise<void>;
|
|
757
1020
|
/**
|
|
758
|
-
*
|
|
1021
|
+
* 监听上下行网络质量;立即回放最新快照,尚无采样或断开后回调 undefined。
|
|
759
1022
|
* 独立于日志和远端生成流;传入 undefined 取消监听,监听器异常不影响主流程。
|
|
760
1023
|
*/
|
|
761
|
-
|
|
1024
|
+
setNetworkQualityListener(listener?: RealtimeNetworkQualityListener): Promise<void>;
|
|
762
1025
|
/**
|
|
763
1026
|
* 监听启动耗时;立即回放当前快照,每完成一个阶段再次回调。
|
|
764
|
-
*
|
|
1027
|
+
* 新一轮创建媒体源时重置;失败或终止后冻结,更新生成条件不重置。
|
|
765
1028
|
* 首帧统计需要将远端轨道绑定到 SDK 视频视图,且不会阻塞 startGeneration。
|
|
766
1029
|
* 传入 undefined 清除监听器;监听器异常不影响生成流程。
|
|
1030
|
+
* 开启 performance 日志后,渲染预热完成时另向 console.info 输出启动汇总,不依赖监听器。
|
|
767
1031
|
*/
|
|
768
|
-
|
|
1032
|
+
setTimingListener(listener?: RealtimeTimingListener): Promise<void>;
|
|
769
1033
|
/**
|
|
770
|
-
*
|
|
1034
|
+
* 监听上行分辨率、采集/编码/发送帧率、码率和丢包率,独立于日志开关。
|
|
771
1035
|
* 设置后立即回放最新快照;未取得数据或停止/断开时回调 undefined。
|
|
772
1036
|
* 传入 undefined 取消监听;监听器异常不影响生成流程。
|
|
773
1037
|
*/
|
|
774
|
-
|
|
1038
|
+
setUplinkVideoStatisticsListener(listener?: UplinkVideoStatisticsListener): Promise<void>;
|
|
775
1039
|
/**
|
|
776
|
-
*
|
|
1040
|
+
* 监听下行分辨率、解码/RTC 渲染帧率、码率、丢包率和媒体 E2E 估算值。
|
|
777
1041
|
* 独立于日志开关;立即回放最新快照,流消失或断开时回调 undefined。
|
|
778
1042
|
* 传入 undefined 取消监听;监听器异常不影响生成流程。
|
|
779
1043
|
*/
|
|
780
|
-
|
|
1044
|
+
setDownlinkVideoStatisticsListener(listener?: DownlinkVideoStatisticsListener): Promise<void>;
|
|
781
1045
|
/**
|
|
782
1046
|
* 设置本地媒体预览音量。
|
|
783
1047
|
* @throws 音量超出有效范围时抛出错误。
|
|
@@ -795,6 +1059,7 @@ interface XmaxRealtimeManaging {
|
|
|
795
1059
|
* 将返回的轨道绑定到预览视图;收到有效帧且视图已绑定后进入 `ready`。
|
|
796
1060
|
*
|
|
797
1061
|
* @param options.videoFormat 旋转后的目标规格,尺寸按模型规则解析。
|
|
1062
|
+
* @param options.preset 替代 videoFormat,使用模型支持的摄像头预设和推荐帧率;两者必须且只能提供一个。
|
|
798
1063
|
* @param options.position 前置或后置摄像头。
|
|
799
1064
|
* @param options.useMicrophone 是否采集并发布麦克风音频。
|
|
800
1065
|
* @param options.rotation 输入帧顺时针旋转角度,默认 0;非零角度目前仅支持 Agora,预览和上传均校正方向,镜像保持独立。
|
|
@@ -803,34 +1068,24 @@ interface XmaxRealtimeManaging {
|
|
|
803
1068
|
* @throws 模型不支持相机输入、配置无效、权限或采集启动失败时抛出错误。
|
|
804
1069
|
*/
|
|
805
1070
|
createLocalCameraStream(options: {
|
|
806
|
-
videoFormat: RealtimeVideoFormat;
|
|
807
1071
|
position: CameraPosition;
|
|
808
1072
|
useMicrophone: boolean;
|
|
809
1073
|
rotation?: CameraRotation;
|
|
810
1074
|
enableFrameValidation?: boolean;
|
|
811
|
-
}
|
|
812
|
-
/**
|
|
813
|
-
* 创建服务端直接读取的 HTTP/HTTPS 网络视频源,不采集或发布本地音视频。
|
|
814
|
-
* 本地预览静音播放一次,独立于服务端进度;创建源不会开始生成。
|
|
815
|
-
* 地址必须可由服务端直接访问,不转发浏览器 Cookie 或自定义鉴权头。
|
|
816
|
-
* @param options.url 服务端可直接访问的 HTTP/HTTPS 视频地址。
|
|
817
|
-
* @param options.videoFormat 模型输入及生成画面规格,不是上行编码参数。
|
|
818
|
-
* @param options.sampleMethod 服务端采样方式,默认 time。
|
|
819
|
-
* @param options.onFinish 当前任务收到服务端完成消息且生成就绪后调用一次,不代表尾帧已播放完。
|
|
820
|
-
* @throws 地址、格式无效或已有活动媒体源时抛错;close 释放源,disconnect 保留预览。
|
|
821
|
-
*/
|
|
822
|
-
createNetworkVideoStream(options: {
|
|
823
|
-
url: string;
|
|
1075
|
+
} & ({
|
|
824
1076
|
videoFormat: RealtimeVideoFormat;
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
1077
|
+
preset?: never;
|
|
1078
|
+
} | {
|
|
1079
|
+
preset: RealtimeCameraPreset;
|
|
1080
|
+
videoFormat?: never;
|
|
1081
|
+
})): Promise<RealtimeMediaStream>;
|
|
828
1082
|
/**
|
|
829
1083
|
* 从本地 File/Blob 创建文件视频源,支持 TRTC、Agora 和 VeRTC,不访问摄像头或麦克风。
|
|
830
|
-
*
|
|
1084
|
+
* Canvas 保留完整内容并按媒体尺寸规则缩放,文件音频独立上行,本地预览始终静音。
|
|
1085
|
+
* SDK 单独选择模型生成画布,仅在媒体与画布比例不一致时启用服务端 contain 补边。
|
|
831
1086
|
* 应从用户点击事件直接调用以解锁播放;创建后停在首帧,startGeneration 时开始播放。
|
|
832
1087
|
* @param options.file 包含可解码视频的本地 File 或 Blob。
|
|
833
|
-
* @param options.videoFormat
|
|
1088
|
+
* @param options.videoFormat 帧率及编码配置;宽高保留兼容入参,实际媒体尺寸从文件读取。
|
|
834
1089
|
* @param options.loop 是否循环播放文件音视频,默认 true。
|
|
835
1090
|
* @param options.includeAudio 是否发送文件音频,默认 true;无音轨文件输出静音,false 不创建音频轨。
|
|
836
1091
|
* @throws 提供方不支持、文件/格式无效、浏览器无法解码或播放受限时抛错。
|
|
@@ -843,10 +1098,11 @@ interface XmaxRealtimeManaging {
|
|
|
843
1098
|
}): Promise<RealtimeMediaStream>;
|
|
844
1099
|
/**
|
|
845
1100
|
* 从本地 File/Blob 创建图片视频流,支持 TRTC、Agora 和 VeRTC。
|
|
846
|
-
*
|
|
1101
|
+
* 保留完整内容并按媒体尺寸规则缩放,持续发送同一静止画面,不上传文件、不采集摄像头或麦克风。
|
|
1102
|
+
* SDK 单独选择模型生成画布,仅在媒体与画布比例不一致时启用服务端 contain 补边。
|
|
847
1103
|
* 创建后可直接预览,仍需调用 startGeneration 开始生成;disconnect 保留图片源,close 释放全部资源。
|
|
848
1104
|
* @param options.file 包含浏览器可解码图片的本地 File 或 Blob;动图仅取解码时的静止快照。
|
|
849
|
-
* @param options.videoFormat
|
|
1105
|
+
* @param options.videoFormat 帧率及编码配置;宽高保留兼容入参,实际媒体尺寸从图片读取。
|
|
850
1106
|
* @throws 文件或格式无效、浏览器无法解码、Canvas 采集不可用或已有活动源时抛错。
|
|
851
1107
|
*/
|
|
852
1108
|
createLocalImageStream(options: {
|
|
@@ -854,25 +1110,31 @@ interface XmaxRealtimeManaging {
|
|
|
854
1110
|
videoFormat: RealtimeVideoFormat;
|
|
855
1111
|
}): Promise<RealtimeMediaStream>;
|
|
856
1112
|
/**
|
|
857
|
-
*
|
|
858
|
-
*
|
|
859
|
-
*
|
|
860
|
-
*
|
|
861
|
-
*
|
|
862
|
-
*
|
|
863
|
-
* @
|
|
1113
|
+
* 接收外部帧源,或兼容仅视频的原生轨入口;不申请设备权限,不播放输入音频。
|
|
1114
|
+
* 传 source 时调用 start(sink),支持可选 PCM;创建完成即 ready,不等待首帧。
|
|
1115
|
+
* 外部帧按媒体规则限制面积并按 4 对齐,SDK 缩放并提供预览;方向和镜像由接入方负责。
|
|
1116
|
+
* 传 videoTrack/videoFormat 时仅克隆视频轨,保持原有行为,不处理其像素或创建预览绑定。
|
|
1117
|
+
* disconnect 保留源和预览,但丢弃音频;stopExternalVideoStream 或 close 使旧 sink 失效并调用 source.stop。
|
|
1118
|
+
* 有音频时需从用户手势调用以解锁 AudioContext,要求安全上下文及 AudioWorklet。
|
|
1119
|
+
* @param options.source 接入方拥有的外部音视频帧源,与 videoTrack/videoFormat 二选一。
|
|
1120
|
+
* @param options.videoTrack 兼容入口:接入方拥有的 live 视频轨。
|
|
1121
|
+
* @param options.videoFormat 兼容入口:原视频轨的尺寸、帧率及编码配置。
|
|
1122
|
+
* @throws 配置无效、已有活动媒体、源启动或 RTC 准备失败时抛错并清理本次绑定。
|
|
864
1123
|
*/
|
|
865
|
-
createExternalVideoStream(options:
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
1124
|
+
createExternalVideoStream(options: RealtimeExternalVideoStreamOptions): Promise<RealtimeMediaStream>;
|
|
1125
|
+
/**
|
|
1126
|
+
* 未连接时解绑外部源,清空预览并释放 SDK 输出,不接管接入方采集设备。
|
|
1127
|
+
* 已连接时请先 disconnect;对其他媒体源不做操作。
|
|
1128
|
+
*/
|
|
1129
|
+
stopExternalVideoStream(): Promise<void>;
|
|
869
1130
|
/**
|
|
870
1131
|
* 更新当前本地流的上行视频格式,立即应用于 RTC 编码器,不重连或重启生成。
|
|
871
1132
|
* 传入完整格式;未指定的码率和编码偏好按 RealtimeVideoFormat 默认规则解析。
|
|
872
|
-
*
|
|
873
|
-
*
|
|
1133
|
+
* 尺寸向下做 4 对齐,优先保持精确比例;帧率、码率及编码偏好保持传入配置。
|
|
1134
|
+
* 成功后本地轨道的 videoFormat 记录对齐后的格式,后续重连继续使用该格式。
|
|
1135
|
+
* 模型生成仍使用创建本地流时的格式;此接口不改变生成尺寸。
|
|
874
1136
|
* 实际发送规格受设备、浏览器和网络影响,应通过统计回调确认。
|
|
875
|
-
* 上行自适应以本次成功应用的完整格式作为新的 L1 基准;Agora 按档位缩放尺寸和帧率,TRTC
|
|
1137
|
+
* 上行自适应以本次成功应用的完整格式作为新的 L1 基准;Agora 按档位缩放尺寸和帧率,TRTC 仅调帧率。
|
|
876
1138
|
*
|
|
877
1139
|
* @param videoFormat 本次完整的上行尺寸、帧率和编码配置。
|
|
878
1140
|
* @throws 无本地相机、外部、图片或文件视频流、其他操作进行中、参数无效或 RTC 更新失败时抛错。
|
|
@@ -901,11 +1163,11 @@ interface XmaxRealtimeManaging {
|
|
|
901
1163
|
/**
|
|
902
1164
|
* 使用当前 Manager 创建的本地流建立实时连接。
|
|
903
1165
|
*
|
|
904
|
-
* 创建实时会话、加入 RTC
|
|
1166
|
+
* 创建实时会话、加入 RTC 房间、发布本地媒体并启动会话心跳。
|
|
905
1167
|
* 启用帧检测时,发布前并行等待相机预热(固定 200ms),避免把黑帧推给 RTC。
|
|
906
1168
|
* 返回的远端媒体流在生成开始后承载远端生成画面。
|
|
907
1169
|
*
|
|
908
|
-
* @param localStream 由当前 Manager
|
|
1170
|
+
* @param localStream 由当前 Manager 创建的摄像头、外部视频轨、本地图片或本地视频文件。
|
|
909
1171
|
* @returns 远端生成结果占位的媒体流。
|
|
910
1172
|
* @throws 本地流不属于当前 Manager、已有活动连接、会话创建或进房
|
|
911
1173
|
* 发布失败时抛出错误;失败时自动释放连接资源并恢复本地预览。
|
|
@@ -927,12 +1189,11 @@ interface XmaxRealtimeManaging {
|
|
|
927
1189
|
* 首次生成必须提供条件上下文,之后缺省时复用最近一次缓存的上下文。
|
|
928
1190
|
* 返回后请将远端流挂载到 SDK 视频视图;首帧及渲染预热完成后状态才进入 generating。
|
|
929
1191
|
*
|
|
930
|
-
* @param options.localStream 由当前 Manager
|
|
1192
|
+
* @param options.localStream 由当前 Manager 创建的摄像头、外部视频轨或本地文件。
|
|
931
1193
|
* @param options.context 本次生成使用的条件上下文;缺省时复用缓存。
|
|
932
1194
|
* @param options.restart 是否保留 RTC 连接并创建新任务发送 start,默认 false;不预先发送 stop。
|
|
933
1195
|
* @param options.faceRestoration 是否启用原始人脸回贴,默认 false;正在生成时通过 change_condition 更新。
|
|
934
1196
|
* @param options.extraParams 合并到本次 start 或 change_condition 的 params;不缓存,自动恢复时不携带,不允许覆盖 SDK 字段。
|
|
935
|
-
* @param options.record 是否录制远端原始音视频约 20 秒,默认 false;仅 start 有效,条件更新时忽略,重启录制暂不支持。
|
|
936
1197
|
* @returns 可挂载的远端媒体流,不等待渲染预热;展示就绪以 generating 状态为准。
|
|
937
1198
|
* @throws extraParams 包含非 JSON 数据、循环引用或 SDK 保留字段时,在连接或更新前抛出 invalidConfiguration。
|
|
938
1199
|
* @throws 本地流不属于当前 Manager、缺少可用的条件上下文、信令发送
|
|
@@ -944,7 +1205,6 @@ interface XmaxRealtimeManaging {
|
|
|
944
1205
|
restart?: boolean;
|
|
945
1206
|
faceRestoration?: boolean;
|
|
946
1207
|
extraParams?: RealtimeExtraParams;
|
|
947
|
-
record?: boolean;
|
|
948
1208
|
}): Promise<RealtimeMediaStream>;
|
|
949
1209
|
}
|
|
950
1210
|
|
|
@@ -965,18 +1225,25 @@ declare enum XmaxEnvironment {
|
|
|
965
1225
|
* 环境对应的 Xmax API Base URL。
|
|
966
1226
|
*/
|
|
967
1227
|
declare function apiBaseURL(environment: XmaxEnvironment): string;
|
|
1228
|
+
/**
|
|
1229
|
+
* 环境对应的实时会话 API 地址。
|
|
1230
|
+
*/
|
|
1231
|
+
declare function realtimeApiBaseURL(environment: XmaxEnvironment): string;
|
|
968
1232
|
|
|
969
1233
|
/**
|
|
970
1234
|
* 控制 XmaxSDK 输出的日志类型(位掩码,可组合)。
|
|
971
1235
|
*/
|
|
972
1236
|
declare enum XmaxLoggerOption {
|
|
1237
|
+
/**
|
|
1238
|
+
* 关闭全部 SDK 日志输出。
|
|
1239
|
+
*/
|
|
973
1240
|
none = 0,
|
|
974
1241
|
/**
|
|
975
1242
|
* Room、API、Realtime、Storage 等业务运行日志。
|
|
976
1243
|
*/
|
|
977
1244
|
business = 1,
|
|
978
1245
|
/**
|
|
979
|
-
* RTC 网络质量和音视频运行统计,输出到 console.info。
|
|
1246
|
+
* 启动耗时、RTC 网络质量和音视频运行统计,输出到 console.info。
|
|
980
1247
|
*/
|
|
981
1248
|
performance = 2,
|
|
982
1249
|
/**
|
|
@@ -994,14 +1261,41 @@ declare class XmaxLogger {
|
|
|
994
1261
|
* 分类日志
|
|
995
1262
|
*/
|
|
996
1263
|
static readonly realtime: XmaxLogger;
|
|
1264
|
+
/**
|
|
1265
|
+
* RTC 引擎、进退房和媒体传输日志。
|
|
1266
|
+
*/
|
|
997
1267
|
static readonly rtc: XmaxLogger;
|
|
1268
|
+
/**
|
|
1269
|
+
* 本地媒体准备与释放日志。
|
|
1270
|
+
*/
|
|
998
1271
|
static readonly media: XmaxLogger;
|
|
1272
|
+
/**
|
|
1273
|
+
* API 请求及响应日志。
|
|
1274
|
+
*/
|
|
999
1275
|
static readonly api: XmaxLogger;
|
|
1276
|
+
/**
|
|
1277
|
+
* 文件上传与下载日志。
|
|
1278
|
+
*/
|
|
1000
1279
|
static readonly storage: XmaxLogger;
|
|
1280
|
+
/**
|
|
1281
|
+
* 房间消息和心跳日志。
|
|
1282
|
+
*/
|
|
1001
1283
|
static readonly room: XmaxLogger;
|
|
1284
|
+
/**
|
|
1285
|
+
* 流发布、订阅及生成控制日志。
|
|
1286
|
+
*/
|
|
1002
1287
|
static readonly stream: XmaxLogger;
|
|
1288
|
+
/**
|
|
1289
|
+
* 视频视图与渲染管线日志。
|
|
1290
|
+
*/
|
|
1003
1291
|
static readonly render: XmaxLogger;
|
|
1292
|
+
/**
|
|
1293
|
+
* 触点采样和轨迹交互日志。
|
|
1294
|
+
*/
|
|
1004
1295
|
static readonly interaction: XmaxLogger;
|
|
1296
|
+
/**
|
|
1297
|
+
* 摄像头和麦克风权限日志。
|
|
1298
|
+
*/
|
|
1005
1299
|
static readonly permission: XmaxLogger;
|
|
1006
1300
|
/**
|
|
1007
1301
|
* 日志类别
|
|
@@ -1048,6 +1342,9 @@ declare class XmaxLogger {
|
|
|
1048
1342
|
private log;
|
|
1049
1343
|
}
|
|
1050
1344
|
|
|
1345
|
+
/**
|
|
1346
|
+
* SDK 的身份、环境和日志选项。
|
|
1347
|
+
*/
|
|
1051
1348
|
interface XmaxConfigurationInit {
|
|
1052
1349
|
/**
|
|
1053
1350
|
* 调用 Xmax 服务使用的 API Key。
|
|
@@ -1066,9 +1363,6 @@ interface XmaxConfigurationInit {
|
|
|
1066
1363
|
* SDK 全局配置。
|
|
1067
1364
|
*/
|
|
1068
1365
|
declare class XmaxConfiguration {
|
|
1069
|
-
/**
|
|
1070
|
-
* 服务身份与环境
|
|
1071
|
-
*/
|
|
1072
1366
|
/**
|
|
1073
1367
|
* 调用 Xmax 服务使用的 API Key。
|
|
1074
1368
|
*/
|
|
@@ -1077,19 +1371,12 @@ declare class XmaxConfiguration {
|
|
|
1077
1371
|
* SDK 连接的服务环境,同时决定日志细项语言:国内为中文,海外为英文。
|
|
1078
1372
|
*/
|
|
1079
1373
|
readonly environment: XmaxEnvironment;
|
|
1080
|
-
/**
|
|
1081
|
-
* 日志配置
|
|
1082
|
-
*/
|
|
1083
1374
|
/**
|
|
1084
1375
|
* SDK 输出的日志类型;默认为不输出日志。
|
|
1085
1376
|
*/
|
|
1086
1377
|
readonly loggerOptions: XmaxLoggerOption;
|
|
1087
1378
|
/**
|
|
1088
|
-
*
|
|
1089
|
-
*
|
|
1090
|
-
* @param init.apiKey 调用 Xmax 服务使用的 API Key。
|
|
1091
|
-
* @param init.environment SDK 连接的服务环境;默认为国内环境。
|
|
1092
|
-
* @param init.loggerOptions SDK 输出的日志类型;默认为空。
|
|
1379
|
+
* 清理 API Key 首尾空白并补全环境和日志默认值;有效性检查由 validate 执行。
|
|
1093
1380
|
*/
|
|
1094
1381
|
constructor(init: XmaxConfigurationInit);
|
|
1095
1382
|
/**
|
|
@@ -1103,16 +1390,34 @@ declare class XmaxConfiguration {
|
|
|
1103
1390
|
* 非实时视频的输出质量。
|
|
1104
1391
|
*/
|
|
1105
1392
|
declare enum NonRealtimeQuality {
|
|
1393
|
+
/**
|
|
1394
|
+
* 标准清晰度输出。
|
|
1395
|
+
*/
|
|
1106
1396
|
sd = "sd",
|
|
1397
|
+
/**
|
|
1398
|
+
* 高清输出。
|
|
1399
|
+
*/
|
|
1107
1400
|
hd = "hd"
|
|
1108
1401
|
}
|
|
1109
1402
|
/**
|
|
1110
1403
|
* 服务端任务状态;上传进度不属于任务状态。
|
|
1111
1404
|
*/
|
|
1112
1405
|
declare enum NonRealtimeTaskStatus {
|
|
1406
|
+
/**
|
|
1407
|
+
* 任务已提交,等待服务端处理。
|
|
1408
|
+
*/
|
|
1113
1409
|
submitted = "submitted",
|
|
1410
|
+
/**
|
|
1411
|
+
* 服务端正在处理任务。
|
|
1412
|
+
*/
|
|
1114
1413
|
processing = "processing",
|
|
1414
|
+
/**
|
|
1415
|
+
* 任务处理完成。
|
|
1416
|
+
*/
|
|
1115
1417
|
completed = "completed",
|
|
1418
|
+
/**
|
|
1419
|
+
* 任务处理失败。
|
|
1420
|
+
*/
|
|
1116
1421
|
error = "error"
|
|
1117
1422
|
}
|
|
1118
1423
|
/**
|
|
@@ -1148,16 +1453,49 @@ interface NonRealtimeTaskOptions {
|
|
|
1148
1453
|
* 非实时生成结果;缺失或 null 的服务端字段规范化为 undefined。
|
|
1149
1454
|
*/
|
|
1150
1455
|
interface NonRealtimeResult {
|
|
1456
|
+
/**
|
|
1457
|
+
* 生成结果文件的访问 URL。
|
|
1458
|
+
*/
|
|
1151
1459
|
readonly url?: string;
|
|
1460
|
+
/**
|
|
1461
|
+
* 服务端上传生成结果时返回的错误说明。
|
|
1462
|
+
*/
|
|
1152
1463
|
readonly uploadError?: string;
|
|
1464
|
+
/**
|
|
1465
|
+
* 生成结果的上传状态。
|
|
1466
|
+
*/
|
|
1153
1467
|
readonly uploadStatus?: string;
|
|
1468
|
+
/**
|
|
1469
|
+
* 服务端结果收尾耗时,单位为毫秒。
|
|
1470
|
+
*/
|
|
1154
1471
|
readonly finalizeDurationMs?: number;
|
|
1472
|
+
/**
|
|
1473
|
+
* 服务端使用的压缩等级。
|
|
1474
|
+
*/
|
|
1155
1475
|
readonly compressionLevel?: string;
|
|
1476
|
+
/**
|
|
1477
|
+
* 结果视频的帧数。
|
|
1478
|
+
*/
|
|
1156
1479
|
readonly frameCount?: number;
|
|
1480
|
+
/**
|
|
1481
|
+
* 结果视频帧率,单位为 fps。
|
|
1482
|
+
*/
|
|
1157
1483
|
readonly fps?: number;
|
|
1484
|
+
/**
|
|
1485
|
+
* 结果视频时长,单位为毫秒。
|
|
1486
|
+
*/
|
|
1158
1487
|
readonly durationMs?: number;
|
|
1488
|
+
/**
|
|
1489
|
+
* 结果文件大小,单位为字节。
|
|
1490
|
+
*/
|
|
1159
1491
|
readonly fileSizeBytes?: number;
|
|
1492
|
+
/**
|
|
1493
|
+
* 服务端处理时丢弃的帧数。
|
|
1494
|
+
*/
|
|
1160
1495
|
readonly droppedFrameCount?: number;
|
|
1496
|
+
/**
|
|
1497
|
+
* 结果压缩前的文件大小,单位为字节。
|
|
1498
|
+
*/
|
|
1161
1499
|
readonly originalFileSizeBytes?: number;
|
|
1162
1500
|
}
|
|
1163
1501
|
/**
|
|
@@ -1165,23 +1503,77 @@ interface NonRealtimeResult {
|
|
|
1165
1503
|
* 时间戳保持服务端原始字符串,不推断时区。
|
|
1166
1504
|
*/
|
|
1167
1505
|
interface NonRealtimeTask {
|
|
1506
|
+
/**
|
|
1507
|
+
* 非实时任务标识,用于查询和恢复任务。
|
|
1508
|
+
*/
|
|
1168
1509
|
readonly uid: string;
|
|
1510
|
+
/**
|
|
1511
|
+
* 服务端返回的运行状态。
|
|
1512
|
+
*/
|
|
1169
1513
|
readonly status: NonRealtimeTaskStatus;
|
|
1514
|
+
/**
|
|
1515
|
+
* 业务用户标识。
|
|
1516
|
+
*/
|
|
1170
1517
|
readonly userUid?: string;
|
|
1518
|
+
/**
|
|
1519
|
+
* 本次视频生成使用的文字指令。
|
|
1520
|
+
*/
|
|
1171
1521
|
readonly prompt?: string;
|
|
1522
|
+
/**
|
|
1523
|
+
* 已上传源视频的 URL。
|
|
1524
|
+
*/
|
|
1172
1525
|
readonly videoPath?: string;
|
|
1526
|
+
/**
|
|
1527
|
+
* 已上传参考图片的 URL。
|
|
1528
|
+
*/
|
|
1173
1529
|
readonly referencePath?: string;
|
|
1530
|
+
/**
|
|
1531
|
+
* 服务端任务处理器标识。
|
|
1532
|
+
*/
|
|
1174
1533
|
readonly processorId?: string;
|
|
1534
|
+
/**
|
|
1535
|
+
* 生成结果使用的输出质量。
|
|
1536
|
+
*/
|
|
1175
1537
|
readonly quality?: NonRealtimeQuality;
|
|
1538
|
+
/**
|
|
1539
|
+
* 提交任务时指定的处理帧率,单位为 fps。
|
|
1540
|
+
*/
|
|
1176
1541
|
readonly requestedFps?: number;
|
|
1542
|
+
/**
|
|
1543
|
+
* 服务端最终使用的处理帧率,单位为 fps。
|
|
1544
|
+
*/
|
|
1177
1545
|
readonly resolvedFps?: number;
|
|
1546
|
+
/**
|
|
1547
|
+
* 服务端已执行的重试次数。
|
|
1548
|
+
*/
|
|
1178
1549
|
readonly retryCount?: number;
|
|
1550
|
+
/**
|
|
1551
|
+
* 源视频时长,单位为秒。
|
|
1552
|
+
*/
|
|
1179
1553
|
readonly videoDurationSeconds?: number;
|
|
1554
|
+
/**
|
|
1555
|
+
* 服务端报告的计费时长,单位为秒。
|
|
1556
|
+
*/
|
|
1180
1557
|
readonly billableDurationSeconds?: number;
|
|
1558
|
+
/**
|
|
1559
|
+
* 服务端报告的任务消耗点数。
|
|
1560
|
+
*/
|
|
1181
1561
|
readonly chargePoints?: number;
|
|
1562
|
+
/**
|
|
1563
|
+
* 生成结果的文件和处理信息。
|
|
1564
|
+
*/
|
|
1182
1565
|
readonly result?: NonRealtimeResult;
|
|
1566
|
+
/**
|
|
1567
|
+
* 服务端开始处理任务的时间。
|
|
1568
|
+
*/
|
|
1183
1569
|
readonly processStartTime?: string;
|
|
1570
|
+
/**
|
|
1571
|
+
* 任务创建时间。
|
|
1572
|
+
*/
|
|
1184
1573
|
readonly createTimestamp?: string;
|
|
1574
|
+
/**
|
|
1575
|
+
* 任务最近更新时间。
|
|
1576
|
+
*/
|
|
1185
1577
|
readonly updateTimestamp?: string;
|
|
1186
1578
|
}
|
|
1187
1579
|
/**
|
|
@@ -1205,9 +1597,21 @@ interface NonRealtimeTaskListOptions {
|
|
|
1205
1597
|
* 按创建时间从新到旧排列的任务页。
|
|
1206
1598
|
*/
|
|
1207
1599
|
interface NonRealtimeTaskPage {
|
|
1600
|
+
/**
|
|
1601
|
+
* 当前页码,从 1 开始。
|
|
1602
|
+
*/
|
|
1208
1603
|
readonly pageNumber: number;
|
|
1604
|
+
/**
|
|
1605
|
+
* 当前页的容量。
|
|
1606
|
+
*/
|
|
1209
1607
|
readonly pageSize: number;
|
|
1608
|
+
/**
|
|
1609
|
+
* 符合查询条件的任务总数。
|
|
1610
|
+
*/
|
|
1210
1611
|
readonly total: number;
|
|
1612
|
+
/**
|
|
1613
|
+
* 当前页中的任务,按创建时间从新到旧排列。
|
|
1614
|
+
*/
|
|
1211
1615
|
readonly list: readonly NonRealtimeTask[];
|
|
1212
1616
|
}
|
|
1213
1617
|
|
|
@@ -1270,9 +1674,6 @@ interface XmaxNonRealtimeManaging {
|
|
|
1270
1674
|
* SDK 的统一入口,负责创建实时、非实时和媒体服务组件。
|
|
1271
1675
|
*/
|
|
1272
1676
|
declare class XmaxClient {
|
|
1273
|
-
/**
|
|
1274
|
-
* 客户端配置
|
|
1275
|
-
*/
|
|
1276
1677
|
/**
|
|
1277
1678
|
* 客户端使用的全局配置。
|
|
1278
1679
|
*/
|
|
@@ -1290,7 +1691,7 @@ declare class XmaxClient {
|
|
|
1290
1691
|
constructor(configuration: XmaxConfiguration);
|
|
1291
1692
|
/**
|
|
1292
1693
|
* 创建实时媒体 Manager。
|
|
1293
|
-
*
|
|
1694
|
+
* 已知模型按环境选择实时会话地址;自定义模型使用测试地址,覆盖整个会话生命周期。
|
|
1294
1695
|
*
|
|
1295
1696
|
* @param options 实时生成模型等业务配置。
|
|
1296
1697
|
* @returns 可用于本地相机预览、实时连接与生成的实时 Manager。
|
|
@@ -1304,7 +1705,7 @@ declare class XmaxClient {
|
|
|
1304
1705
|
/**
|
|
1305
1706
|
* 创建媒体处理与能力查询 Service。
|
|
1306
1707
|
*
|
|
1307
|
-
* @param model 媒体输入规则使用的模型,默认为 `x2.1
|
|
1708
|
+
* @param model 媒体输入规则使用的模型,默认为 `x2.1`。
|
|
1308
1709
|
*/
|
|
1309
1710
|
createMediaService(model?: RealtimeModelName): MediaServicing;
|
|
1310
1711
|
/**
|
|
@@ -1330,8 +1731,7 @@ declare class NonRealtimeTaskError extends XmaxError {
|
|
|
1330
1731
|
}
|
|
1331
1732
|
|
|
1332
1733
|
/**
|
|
1333
|
-
*
|
|
1334
|
-
* 模型输入尺寸与远端插帧能力。
|
|
1734
|
+
* 统一计算本地媒体、生成画布及回传尺寸,并查询平台媒体能力。
|
|
1335
1735
|
*/
|
|
1336
1736
|
declare class MediaService implements MediaServicing {
|
|
1337
1737
|
/**
|
|
@@ -1340,18 +1740,29 @@ declare class MediaService implements MediaServicing {
|
|
|
1340
1740
|
readonly model: RealtimeModelName;
|
|
1341
1741
|
/**
|
|
1342
1742
|
* 创建媒体服务。
|
|
1343
|
-
*
|
|
1344
|
-
* @param model 媒体输入规则使用的模型,默认为 `x2.1.1-preview-cn`。
|
|
1345
1743
|
*/
|
|
1346
1744
|
constructor(model?: RealtimeModelName);
|
|
1347
1745
|
/**
|
|
1348
|
-
*
|
|
1746
|
+
* 解析固定媒体基准:保留完整内容、不放大、限制面积并按 4 对齐。
|
|
1747
|
+
* 摄像头请求尺寸须先匹配模型桶;文件媒体和外部轨道不受模型桶比例限制。
|
|
1748
|
+
*
|
|
1749
|
+
* @param sourceMediaSize 原始媒体尺寸。
|
|
1750
|
+
* @param source 媒体来源,仅摄像头需要校验采集分辨率桶。
|
|
1751
|
+
* @returns 用于固定媒体基准和初始上行编码的尺寸。
|
|
1752
|
+
*/
|
|
1753
|
+
resolveMediaSize(sourceMediaSize: ModelSize, source: "camera" | "image" | "video" | "external"): ModelSize;
|
|
1754
|
+
/**
|
|
1755
|
+
* 选择比例最接近的模型生成画布;无固定桶时按模型像素预算和对齐规则计算。
|
|
1756
|
+
*/
|
|
1757
|
+
resolveGenerationSize(resolvedMediaSize: ModelSize): ModelSize;
|
|
1758
|
+
/**
|
|
1759
|
+
* 综合下行宽高上限计算回传尺寸,不放大、优先保持比例并按 4 对齐。
|
|
1349
1760
|
*/
|
|
1350
|
-
|
|
1761
|
+
resolveTargetSize(resolvedMediaSize: ModelSize, maximumSize: ModelSize): ModelSize;
|
|
1351
1762
|
/**
|
|
1352
|
-
*
|
|
1763
|
+
* 拒绝无效或不能安全参与面积计算的媒体像素尺寸。
|
|
1353
1764
|
*/
|
|
1354
|
-
|
|
1765
|
+
private validateIntegralSize;
|
|
1355
1766
|
/**
|
|
1356
1767
|
* 按模型分辨率档位或像素预算解析输入尺寸,保持宽高比例并对齐;不支持的规格抛错。
|
|
1357
1768
|
*/
|
|
@@ -1370,16 +1781,34 @@ declare class MediaService implements MediaServicing {
|
|
|
1370
1781
|
* Xmax API 支持的 HTTP 请求方法。
|
|
1371
1782
|
*/
|
|
1372
1783
|
declare enum ApiMethod {
|
|
1784
|
+
/**
|
|
1785
|
+
* 读取服务端资源。
|
|
1786
|
+
*/
|
|
1373
1787
|
get = "GET",
|
|
1788
|
+
/**
|
|
1789
|
+
* 提交数据或创建资源。
|
|
1790
|
+
*/
|
|
1374
1791
|
post = "POST",
|
|
1792
|
+
/**
|
|
1793
|
+
* 更新服务端资源。
|
|
1794
|
+
*/
|
|
1375
1795
|
put = "PUT",
|
|
1796
|
+
/**
|
|
1797
|
+
* 删除服务端资源。
|
|
1798
|
+
*/
|
|
1376
1799
|
delete = "DELETE"
|
|
1377
1800
|
}
|
|
1378
1801
|
/**
|
|
1379
1802
|
* 请求控制选项;signal 仅取消本地 HTTP 请求,不撤销服务端已执行的操作。
|
|
1380
1803
|
*/
|
|
1381
1804
|
interface ApiRequestOptions {
|
|
1805
|
+
/**
|
|
1806
|
+
* 取消请求及后续等待的信号。
|
|
1807
|
+
*/
|
|
1382
1808
|
signal?: AbortSignal;
|
|
1809
|
+
/**
|
|
1810
|
+
* 允许页面退出后继续完成符合浏览器限制的请求。
|
|
1811
|
+
*/
|
|
1383
1812
|
keepalive?: boolean;
|
|
1384
1813
|
}
|
|
1385
1814
|
/**
|
|
@@ -1426,10 +1855,25 @@ interface ApiServicing {
|
|
|
1426
1855
|
* 解析后的临时存储配置。
|
|
1427
1856
|
*/
|
|
1428
1857
|
interface TemporaryStorageConfiguration {
|
|
1858
|
+
/**
|
|
1859
|
+
* 对象存储桶名称。
|
|
1860
|
+
*/
|
|
1429
1861
|
bucket: string;
|
|
1862
|
+
/**
|
|
1863
|
+
* 对象存储桶所在区域。
|
|
1864
|
+
*/
|
|
1430
1865
|
region: string;
|
|
1866
|
+
/**
|
|
1867
|
+
* 对象存储访问域名。
|
|
1868
|
+
*/
|
|
1431
1869
|
endpoint?: string;
|
|
1870
|
+
/**
|
|
1871
|
+
* 上传对象的键名前缀。
|
|
1872
|
+
*/
|
|
1432
1873
|
prefix: string;
|
|
1874
|
+
/**
|
|
1875
|
+
* 对象存储临时鉴权凭据。
|
|
1876
|
+
*/
|
|
1433
1877
|
credentials: {
|
|
1434
1878
|
accessKeyID: string;
|
|
1435
1879
|
secretAccessKey: string;
|
|
@@ -1464,6 +1908,9 @@ interface StorageObjectClient {
|
|
|
1464
1908
|
* 对象存储客户端工厂;生产实现按临时凭证创建 COS 客户端。
|
|
1465
1909
|
*/
|
|
1466
1910
|
type StorageObjectClientFactory = (configuration: TemporaryStorageConfiguration) => Promise<StorageObjectClient>;
|
|
1911
|
+
/**
|
|
1912
|
+
* 对象存储上传所需的接口与客户端依赖。
|
|
1913
|
+
*/
|
|
1467
1914
|
interface StorageServiceOptions {
|
|
1468
1915
|
/**
|
|
1469
1916
|
* Xmax API 请求组件。
|
|
@@ -1502,6 +1949,9 @@ declare class StorageService implements StorageServicing {
|
|
|
1502
1949
|
* 标识生成
|
|
1503
1950
|
*/
|
|
1504
1951
|
private readonly dateGenerator;
|
|
1952
|
+
/**
|
|
1953
|
+
* 生成上传对象键名中的唯一标识。
|
|
1954
|
+
*/
|
|
1505
1955
|
private readonly identifierGenerator;
|
|
1506
1956
|
/**
|
|
1507
1957
|
* 创建存储 Service。
|
|
@@ -1571,27 +2021,14 @@ declare class StorageService implements StorageServicing {
|
|
|
1571
2021
|
private static nonEmpty;
|
|
1572
2022
|
}
|
|
1573
2023
|
|
|
1574
|
-
interface RemoteFrameInterpolationOptions {
|
|
1575
|
-
size: ModelSize;
|
|
1576
|
-
onActiveChange?: (active: boolean) => void;
|
|
1577
|
-
/**
|
|
1578
|
-
* 实际提交画布呈现时通知,参数表示是否为插值帧。
|
|
1579
|
-
*/
|
|
1580
|
-
onFramePresented?: (interpolated: boolean) => void;
|
|
1581
|
-
onFailure: (error: unknown) => void;
|
|
1582
|
-
}
|
|
1583
|
-
|
|
1584
2024
|
/**
|
|
1585
|
-
*
|
|
2025
|
+
* 显示一路本地或远端视频轨道的实时视频视图(框架无关)。
|
|
1586
2026
|
*
|
|
1587
2027
|
* 通过 `attach(to:)` 挂载到任意容器元素;设置 `track` 后自动渲染。
|
|
1588
2028
|
* 轨道注册了渲染绑定时走绑定管线,否则按 `mediaStreamTrack` 直接渲染。
|
|
1589
|
-
* SDK
|
|
2029
|
+
* SDK 远端轨道在首帧后按绑定配置预热,再按视图配置渐入;本地预览不延迟。
|
|
1590
2030
|
*/
|
|
1591
|
-
declare class
|
|
1592
|
-
/**
|
|
1593
|
-
* 视图元素
|
|
1594
|
-
*/
|
|
2031
|
+
declare class XmaxRealtimeVideoView {
|
|
1595
2032
|
/**
|
|
1596
2033
|
* 视图根元素(div,内含一个 video 元素)。
|
|
1597
2034
|
*/
|
|
@@ -1601,8 +2038,17 @@ declare class XmaxVideoView {
|
|
|
1601
2038
|
*/
|
|
1602
2039
|
readonly videoElement: HTMLVideoElement;
|
|
1603
2040
|
/**
|
|
1604
|
-
*
|
|
2041
|
+
* 视频显示层,与触控轨迹层独立。
|
|
2042
|
+
*/
|
|
2043
|
+
private readonly videoLayer;
|
|
2044
|
+
/**
|
|
2045
|
+
* 首帧预热只影响媒体内容,不影响轨迹交互层。
|
|
1605
2046
|
*/
|
|
2047
|
+
private readonly warmupLayer;
|
|
2048
|
+
/**
|
|
2049
|
+
* 视频画面是否可见。
|
|
2050
|
+
*/
|
|
2051
|
+
private videoVisible;
|
|
1606
2052
|
/**
|
|
1607
2053
|
* 首帧实际提交显示时调用(一次性;换轨后重新武装)。
|
|
1608
2054
|
*/
|
|
@@ -1611,21 +2057,30 @@ declare class XmaxVideoView {
|
|
|
1611
2057
|
* 渲染状态
|
|
1612
2058
|
*/
|
|
1613
2059
|
private currentTrack?;
|
|
2060
|
+
/**
|
|
2061
|
+
* 画面在视口中的缩放与裁剪方式。
|
|
2062
|
+
*/
|
|
1614
2063
|
private contentMode;
|
|
2064
|
+
/**
|
|
2065
|
+
* 是否对显示画面应用水平镜像。
|
|
2066
|
+
*/
|
|
1615
2067
|
private mirrored;
|
|
1616
2068
|
/**
|
|
1617
2069
|
* 首帧显示通知与异步回调版本
|
|
1618
2070
|
*/
|
|
1619
2071
|
private hasNotifiedFrameDisplay;
|
|
2072
|
+
/**
|
|
2073
|
+
* 视频开始播放时尝试通知首帧就绪。
|
|
2074
|
+
*/
|
|
1620
2075
|
private onPlaying?;
|
|
2076
|
+
/**
|
|
2077
|
+
* 首帧观察回调的取消句柄。
|
|
2078
|
+
*/
|
|
1621
2079
|
private videoFrameCallbackID?;
|
|
1622
|
-
private frameNotificationSequence;
|
|
1623
2080
|
/**
|
|
1624
|
-
*
|
|
2081
|
+
* 首帧通知版本,避免旧流回调影响新流。
|
|
1625
2082
|
*/
|
|
1626
|
-
private
|
|
1627
|
-
private interpolationPipeline?;
|
|
1628
|
-
private interpolationCanvas?;
|
|
2083
|
+
private frameNotificationSequence;
|
|
1629
2084
|
/**
|
|
1630
2085
|
* 呈现统计组件
|
|
1631
2086
|
*/
|
|
@@ -1642,17 +2097,46 @@ declare class XmaxVideoView {
|
|
|
1642
2097
|
* 轨迹交互配置与懒加载视图
|
|
1643
2098
|
*/
|
|
1644
2099
|
private interactionEnabled;
|
|
2100
|
+
/**
|
|
2101
|
+
* 接入方提供的轨迹视觉效果实现。
|
|
2102
|
+
*/
|
|
1645
2103
|
private customTrajectoryRenderer?;
|
|
2104
|
+
/**
|
|
2105
|
+
* 视口触点采样与轨迹效果覆盖层。
|
|
2106
|
+
*/
|
|
1646
2107
|
private trajectoryOverlay?;
|
|
1647
2108
|
/**
|
|
1648
2109
|
* 创建单轨视频视图。
|
|
1649
2110
|
*
|
|
1650
2111
|
* @param options.videoContentMode 视频内容显示模式,默认 fill。
|
|
2112
|
+
* @param options.isInteractionEnabled 是否允许远端轨迹交互,默认 true。
|
|
2113
|
+
* @param options.fadeInDurationMs 远端画面预热完成后的渐入时长,单位为毫秒,默认 300;0 表示直接显示,不跳过预热。
|
|
2114
|
+
* @throws 渐入时长为负数或非有限数值时抛出 invalidConfiguration。
|
|
1651
2115
|
*/
|
|
1652
2116
|
constructor(options?: {
|
|
1653
2117
|
videoContentMode?: VideoContentMode;
|
|
1654
2118
|
isInteractionEnabled?: boolean;
|
|
2119
|
+
/**
|
|
2120
|
+
* 远端画面的渐入时长,单位为毫秒,默认 300;0 表示预热完成后直接显示。
|
|
2121
|
+
*/
|
|
2122
|
+
fadeInDurationMs?: number;
|
|
1655
2123
|
});
|
|
2124
|
+
/**
|
|
2125
|
+
* 远端画面预热完成后的渐入时长,单位为毫秒。
|
|
2126
|
+
*/
|
|
2127
|
+
get fadeInDurationMs(): number;
|
|
2128
|
+
/**
|
|
2129
|
+
* 更新下一次渐入时长,0 表示直接显示,不跳过渲染预热。
|
|
2130
|
+
*/
|
|
2131
|
+
set fadeInDurationMs(durationMs: number);
|
|
2132
|
+
/**
|
|
2133
|
+
* 是否显示视频画面,默认 true;隐藏时保留播放、解码和触控轨迹。
|
|
2134
|
+
*/
|
|
2135
|
+
get isVideoVisible(): boolean;
|
|
2136
|
+
/**
|
|
2137
|
+
* 即时切换视频的显隐,不改变触控配置或媒体流。
|
|
2138
|
+
*/
|
|
2139
|
+
set isVideoVisible(visible: boolean);
|
|
1656
2140
|
/**
|
|
1657
2141
|
* 是否允许远端轨迹交互;本地轨道没有交互绑定,不受此开关影响。
|
|
1658
2142
|
*/
|
|
@@ -1690,7 +2174,7 @@ declare class XmaxVideoView {
|
|
|
1690
2174
|
*/
|
|
1691
2175
|
get videoContentMode(): VideoContentMode;
|
|
1692
2176
|
/**
|
|
1693
|
-
*
|
|
2177
|
+
* 更新视频的内容缩放方式;相同配置不重复应用。
|
|
1694
2178
|
*/
|
|
1695
2179
|
set videoContentMode(mode: VideoContentMode);
|
|
1696
2180
|
/**
|
|
@@ -1709,10 +2193,6 @@ declare class XmaxVideoView {
|
|
|
1709
2193
|
* 从容器元素移除。
|
|
1710
2194
|
*/
|
|
1711
2195
|
detach(): void;
|
|
1712
|
-
/**
|
|
1713
|
-
* 设置网络视频预览;静音播放一次,不捕获或发布媒体轨道。 @internal
|
|
1714
|
-
*/
|
|
1715
|
-
setVideoURL(url: string | null): void;
|
|
1716
2196
|
/**
|
|
1717
2197
|
* 直接设置渲染用的媒体流(绑定管线和直接渲染共用)。 @internal
|
|
1718
2198
|
*/
|
|
@@ -1721,18 +2201,6 @@ declare class XmaxVideoView {
|
|
|
1721
2201
|
* 新生成任务重新等待首帧和预热,不替换正在播放的媒体流。 @internal
|
|
1722
2202
|
*/
|
|
1723
2203
|
prepareForGeneration(): void;
|
|
1724
|
-
/**
|
|
1725
|
-
* 由远端绑定注入配置;本地预览不走此管线。 @internal
|
|
1726
|
-
*/
|
|
1727
|
-
setFrameInterpolation(options?: RemoteFrameInterpolationOptions): void;
|
|
1728
|
-
/**
|
|
1729
|
-
* 视图已挂载且媒体与配置就绪时创建插帧画布和管线,避免重复启动。
|
|
1730
|
-
*/
|
|
1731
|
-
private startInterpolation;
|
|
1732
|
-
/**
|
|
1733
|
-
* 停止并释放插帧管线,移除辅助画布,保留原始视频元素。
|
|
1734
|
-
*/
|
|
1735
|
-
private stopInterpolation;
|
|
1736
2204
|
/**
|
|
1737
2205
|
* 接入轨道画面:优先走注册的渲染绑定,否则按媒体轨直接渲染。
|
|
1738
2206
|
*/
|
|
@@ -1772,15 +2240,12 @@ declare class XmaxVideoView {
|
|
|
1772
2240
|
}
|
|
1773
2241
|
|
|
1774
2242
|
/**
|
|
1775
|
-
*
|
|
2243
|
+
* 双轨视频容器:在本地预览和远端生成画面之间自动切换(框架无关)。
|
|
1776
2244
|
*
|
|
1777
2245
|
* 设置 SDK 远端轨道后,等待首帧及渲染预热结束再渐入远端画面;
|
|
1778
2246
|
* 远端轨道置空时立即恢复本地预览。
|
|
1779
2247
|
*/
|
|
1780
|
-
declare class
|
|
1781
|
-
/**
|
|
1782
|
-
* 视图元素
|
|
1783
|
-
*/
|
|
2248
|
+
declare class XmaxRealtimeDualVideoView {
|
|
1784
2249
|
/**
|
|
1785
2250
|
* 视图根元素。
|
|
1786
2251
|
*/
|
|
@@ -1789,26 +2254,49 @@ declare class XmaxRealtimeVideoView {
|
|
|
1789
2254
|
* 视频视图
|
|
1790
2255
|
*/
|
|
1791
2256
|
private readonly localVideoView;
|
|
2257
|
+
/**
|
|
2258
|
+
* 展示生成结果流的远端视频视图。
|
|
2259
|
+
*/
|
|
1792
2260
|
private readonly remoteVideoView;
|
|
1793
2261
|
/**
|
|
1794
2262
|
* 公共配置
|
|
1795
2263
|
*/
|
|
1796
2264
|
private currentLocalTrack?;
|
|
2265
|
+
/**
|
|
2266
|
+
* 当前绑定的远端视频轨。
|
|
2267
|
+
*/
|
|
1797
2268
|
private currentRemoteTrack?;
|
|
2269
|
+
/**
|
|
2270
|
+
* 画面在视口中的缩放与裁剪方式。
|
|
2271
|
+
*/
|
|
1798
2272
|
private contentMode;
|
|
2273
|
+
/**
|
|
2274
|
+
* 远端画面渐入时长,单位为秒。
|
|
2275
|
+
*/
|
|
2276
|
+
private fadeInDuration;
|
|
1799
2277
|
/**
|
|
1800
2278
|
* 创建实时视频容器。
|
|
1801
2279
|
*
|
|
1802
2280
|
* @param options.localTrack 需要持续预览的本地视频轨道。
|
|
1803
2281
|
* @param options.remoteTrack 需要覆盖显示的远端生成视频轨道。
|
|
1804
2282
|
* @param options.videoContentMode 本地与远端视频的内容显示模式,默认 fill。
|
|
2283
|
+
* @param options.remoteVideoFadeInDuration 远端渐入时长,单位为秒,默认 0.3;非正数或非有限值关闭动画。
|
|
1805
2284
|
*/
|
|
1806
2285
|
constructor(options?: {
|
|
1807
2286
|
localTrack?: RealtimeVideoTrack;
|
|
1808
2287
|
remoteTrack?: RealtimeVideoTrack;
|
|
1809
2288
|
videoContentMode?: VideoContentMode;
|
|
2289
|
+
remoteVideoFadeInDuration?: number;
|
|
1810
2290
|
isInteractionEnabled?: boolean;
|
|
1811
2291
|
});
|
|
2292
|
+
/**
|
|
2293
|
+
* 远端画面的渐入时长,单位为秒,默认 0.3。
|
|
2294
|
+
*/
|
|
2295
|
+
get remoteVideoFadeInDuration(): number;
|
|
2296
|
+
/**
|
|
2297
|
+
* 配置下一次渐入;非正数或非有限值关闭动画,不跳过首帧等待及渲染预热。
|
|
2298
|
+
*/
|
|
2299
|
+
set remoteVideoFadeInDuration(duration: number);
|
|
1812
2300
|
/**
|
|
1813
2301
|
* 当前显示的本地视频轨道。
|
|
1814
2302
|
*/
|
|
@@ -1876,4 +2364,90 @@ declare class XmaxRealtimeVideoView {
|
|
|
1876
2364
|
private showRemoteVideo;
|
|
1877
2365
|
}
|
|
1878
2366
|
|
|
1879
|
-
|
|
2367
|
+
/**
|
|
2368
|
+
* 绿色发光尾迹与触点装饰;仅负责绘制,不参与采样或信令发送。
|
|
2369
|
+
*/
|
|
2370
|
+
declare class DefaultTrajectoryEffectRenderer implements TrajectoryEffectRendering {
|
|
2371
|
+
/**
|
|
2372
|
+
* 画布与动画资源;尾迹保留像素渐隐,触点装饰每帧重绘。
|
|
2373
|
+
*/
|
|
2374
|
+
readonly element: HTMLDivElement;
|
|
2375
|
+
/**
|
|
2376
|
+
* 绘制轨迹线条的画布。
|
|
2377
|
+
*/
|
|
2378
|
+
private readonly trailCanvas;
|
|
2379
|
+
/**
|
|
2380
|
+
* 绘制触点光圈的画布。
|
|
2381
|
+
*/
|
|
2382
|
+
private readonly effectCanvas;
|
|
2383
|
+
/**
|
|
2384
|
+
* 下一次动画刷新任务的句柄。
|
|
2385
|
+
*/
|
|
2386
|
+
private animation?;
|
|
2387
|
+
/**
|
|
2388
|
+
* 轨迹画布中是否仍有待淡出的像素。
|
|
2389
|
+
*/
|
|
2390
|
+
private hasTrailPixels;
|
|
2391
|
+
/**
|
|
2392
|
+
* 无活动触点后已经执行的淡出帧数。
|
|
2393
|
+
*/
|
|
2394
|
+
private idleFadeFrames;
|
|
2395
|
+
/**
|
|
2396
|
+
* 活动触点和等待下一帧绘制的线段。
|
|
2397
|
+
*/
|
|
2398
|
+
private readonly pointers;
|
|
2399
|
+
/**
|
|
2400
|
+
* 等待绘制的轨迹线段。
|
|
2401
|
+
*/
|
|
2402
|
+
private readonly segments;
|
|
2403
|
+
/**
|
|
2404
|
+
* 安装独立视觉图层,不注册指针事件。
|
|
2405
|
+
*/
|
|
2406
|
+
constructor();
|
|
2407
|
+
/**
|
|
2408
|
+
* 开始触点装饰,脉冲动画以本次按下时间为起点。
|
|
2409
|
+
*/
|
|
2410
|
+
renderBegan(points: readonly TrajectoryPoint[]): void;
|
|
2411
|
+
/**
|
|
2412
|
+
* 只绘制新线段,旧像素自然衰减,不反复加亮整条历史轨迹。
|
|
2413
|
+
*/
|
|
2414
|
+
renderMoved(points: readonly TrajectoryPoint[]): void;
|
|
2415
|
+
/**
|
|
2416
|
+
* 释放触点后移除装饰,仅保留尾迹的渐隐动画。
|
|
2417
|
+
*/
|
|
2418
|
+
renderEnded(identifiers: readonly TrajectoryID[]): void;
|
|
2419
|
+
/**
|
|
2420
|
+
* 清除画面、待绘制数据及动画,允许同一 Renderer 再次挂载。
|
|
2421
|
+
*/
|
|
2422
|
+
reset(): void;
|
|
2423
|
+
/**
|
|
2424
|
+
* 仅在触点、待绘制线段或残留尾迹存在时申请下一帧。
|
|
2425
|
+
*/
|
|
2426
|
+
private schedule;
|
|
2427
|
+
/**
|
|
2428
|
+
* 同步画布分辨率,分别更新尾迹和触点视觉图层。
|
|
2429
|
+
*/
|
|
2430
|
+
private draw;
|
|
2431
|
+
/**
|
|
2432
|
+
* 叠加绿色外晕、中层和白色线芯;多指时省略阴影降低绘制开销。
|
|
2433
|
+
*/
|
|
2434
|
+
private drawSegments;
|
|
2435
|
+
/**
|
|
2436
|
+
* 绘制触点周围两层不同相位的脉冲圆环。
|
|
2437
|
+
*/
|
|
2438
|
+
private drawRings;
|
|
2439
|
+
/**
|
|
2440
|
+
* 绘制四个反向交错运动的柔和环绕粒子。
|
|
2441
|
+
*/
|
|
2442
|
+
private drawParticles;
|
|
2443
|
+
/**
|
|
2444
|
+
* 绘制径向绿色光晕,触点核心增加中间色阶。
|
|
2445
|
+
*/
|
|
2446
|
+
private drawGlow;
|
|
2447
|
+
/**
|
|
2448
|
+
* 统一轨迹主题色,透明度由各视觉层指定。
|
|
2449
|
+
*/
|
|
2450
|
+
private green;
|
|
2451
|
+
}
|
|
2452
|
+
|
|
2453
|
+
export { CameraPosition, type CameraRotation, DefaultTrajectoryEffectRenderer, type DownlinkVideoStatistics, type DownlinkVideoStatisticsListener, type JsonValue, MediaService, type MediaServicing, NonRealtimeQuality, type NonRealtimeResult, type NonRealtimeTask, NonRealtimeTaskError, type NonRealtimeTaskListOptions, type NonRealtimeTaskOptions, type NonRealtimeTaskPage, NonRealtimeTaskStatus, type NonRealtimeWaitOptions, type RealtimeAudioFrame, RealtimeCameraPreset, RealtimeConfiguration, RealtimeConnectionState, RealtimeContext, type RealtimeContextInit, type RealtimeExternalAudioFrame, type RealtimeExternalFrameSink, type RealtimeExternalVideoSource, type RealtimeExternalVideoStreamOptions, type RealtimeExtraParams, type RealtimeMediaFrame, type RealtimeMediaFrameListener, RealtimeMediaStream, RealtimeModel, type RealtimeModelName, type RealtimeNetworkQuality, RealtimeNetworkQualityLevel, type RealtimeNetworkQualityListener, RealtimeQualityLevel, RealtimeReason, RealtimeState, type RealtimeStateListener, type RealtimeTiming, type RealtimeTimingListener, RealtimeVideoFormat, type RealtimeVideoFrame, RealtimeVideoTrack, type RemoteMediaTracks, RtcProvider, StorageService, type StorageServicing, type StorageUploadOptions, StoredFile, TrajectoryEffectRendering, TrajectoryID, TrajectoryPoint, type UplinkVideoStatistics, type UplinkVideoStatisticsListener, VideoContentMode, VideoRenderStatistics, XmaxClient, XmaxConfiguration, type XmaxConfigurationInit, XmaxEnvironment, XmaxError, XmaxErrorCode, type XmaxErrorListener, XmaxLogger, XmaxLoggerOption, type XmaxNonRealtimeManaging, XmaxRealtimeDualVideoView, type XmaxRealtimeManaging, XmaxRealtimeVideoView, apiBaseURL, cameraPresetSize, defaultCameraVideoFormat, defaultFrameRate, modelDisplayName, realtimeApiBaseURL, supportedRtcProviders, supportedVideoFormats };
|