@xmaxai/web-sdk 1.0.9 → 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 +232 -64
- package/dist/{TrajectoryEffectRendering-C7E2KJbV.d.cts → TrajectoryEffectRendering-BdSJxHQw.d.cts} +24 -33
- package/dist/{TrajectoryEffectRendering-C7E2KJbV.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 +929 -332
- package/dist/index.d.ts +929 -332
- 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 +17 -6
- package/dist/react/index.d.ts +17 -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-ILZL4W2G.js +0 -14716
- package/dist/chunk-ILZL4W2G.js.map +0 -1
- package/dist/chunk-KROY2O4A.cjs +0 -14716
- package/dist/chunk-KROY2O4A.cjs.map +0 -1
- package/dist/chunk-V6TY7KAL.js +0 -8
- package/dist/chunk-V6TY7KAL.js.map +0 -1
package/dist/index.d.cts
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.cjs';
|
|
2
|
+
export { e as RealtimeVideoEncoderPreference, f as RealtimeVideoFormatInit } from './TrajectoryEffectRendering-BdSJxHQw.cjs';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* 实时媒体使用的 RTC 提供方;一个 Manager 生命周期内保持不变。
|
|
@@ -23,26 +23,40 @@ declare enum RtcProvider {
|
|
|
23
23
|
* SDK 当前支持的实时生成模型。
|
|
24
24
|
*/
|
|
25
25
|
declare enum RealtimeModel {
|
|
26
|
+
/**
|
|
27
|
+
* 使用 VeRTC 的 X2.0 实时生成模型。
|
|
28
|
+
*/
|
|
26
29
|
x2_0 = "x2.0",
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
x2_1_1_preview_us = "x2.1.1-preview-us"
|
|
30
|
+
/**
|
|
31
|
+
* 使用 Agora 的 X2.1 实时生成模型。
|
|
32
|
+
*/
|
|
33
|
+
x2_1 = "x2.1"
|
|
32
34
|
}
|
|
33
|
-
/**
|
|
35
|
+
/**
|
|
36
|
+
* 内置模型或服务端新增的模型标识;自定义名称原样传给服务端。
|
|
37
|
+
*/
|
|
34
38
|
type RealtimeModelName = RealtimeModel | (string & {});
|
|
35
39
|
/**
|
|
36
40
|
* 模型输入画面的像素尺寸。
|
|
37
41
|
*/
|
|
38
42
|
interface ModelSize {
|
|
43
|
+
/**
|
|
44
|
+
* 视频宽度,单位为像素。
|
|
45
|
+
*/
|
|
39
46
|
width: number;
|
|
47
|
+
/**
|
|
48
|
+
* 视频高度,单位为像素。
|
|
49
|
+
*/
|
|
40
50
|
height: number;
|
|
41
51
|
}
|
|
42
52
|
/**
|
|
43
53
|
* 获取模型的显示名称。
|
|
44
54
|
*/
|
|
45
55
|
declare function modelDisplayName(model: RealtimeModelName): string;
|
|
56
|
+
/**
|
|
57
|
+
* 模型支持的固定视频规格;空列表表示按像素预算解析,帧率为推荐默认值。
|
|
58
|
+
*/
|
|
59
|
+
declare function supportedVideoFormats(model: RealtimeModelName): RealtimeVideoFormat[];
|
|
46
60
|
/**
|
|
47
61
|
* 未指定视频规格时,各媒体来源使用的默认帧率。
|
|
48
62
|
*/
|
|
@@ -53,7 +67,7 @@ declare function defaultFrameRate(_model: RealtimeModelName): number;
|
|
|
53
67
|
declare function defaultCameraVideoFormat(model: RealtimeModelName): RealtimeVideoFormat;
|
|
54
68
|
/**
|
|
55
69
|
* 查询 SDK 允许配置的 RTC 提供方,第一项为默认值。
|
|
56
|
-
*
|
|
70
|
+
* 未知模型默认使用 Agora,也允许显式选择其他已接入的 RTC;
|
|
57
71
|
* 是否被该模型的服务端支持,由服务端决定。
|
|
58
72
|
*/
|
|
59
73
|
declare function supportedRtcProviders(model: RealtimeModelName): readonly RtcProvider[];
|
|
@@ -63,15 +77,27 @@ declare function supportedRtcProviders(model: RealtimeModelName): readonly RtcPr
|
|
|
63
77
|
*/
|
|
64
78
|
interface MediaServicing {
|
|
65
79
|
/**
|
|
66
|
-
*
|
|
80
|
+
* 当前媒体规则使用的模型。
|
|
81
|
+
*/
|
|
82
|
+
readonly model: RealtimeModelName;
|
|
83
|
+
/**
|
|
84
|
+
* 解析原始媒体尺寸,不放大、限制像素面积并按 4 对齐;仅摄像头校验模型桶。
|
|
85
|
+
*
|
|
86
|
+
* @param sourceMediaSize 原始媒体尺寸。
|
|
87
|
+
* @param source 媒体来源,文件媒体和外部轨道接受任意比例。
|
|
88
|
+
* @returns 用于固定媒体基准和初始上行编码的尺寸。
|
|
89
|
+
*/
|
|
90
|
+
resolveMediaSize(sourceMediaSize: ModelSize, source: "camera" | "image" | "video" | "external"): ModelSize;
|
|
91
|
+
/**
|
|
92
|
+
* 为处理后的媒体选择模型生成画布,不改变本地媒体规格。
|
|
67
93
|
*/
|
|
68
|
-
|
|
94
|
+
resolveGenerationSize(resolvedMediaSize: ModelSize): ModelSize;
|
|
69
95
|
/**
|
|
70
|
-
*
|
|
96
|
+
* 根据固定媒体基准和下行尺寸上限计算 4 对齐回传尺寸。
|
|
71
97
|
*/
|
|
72
|
-
|
|
98
|
+
resolveTargetSize(resolvedMediaSize: ModelSize, maximumSize: ModelSize): ModelSize;
|
|
73
99
|
/**
|
|
74
|
-
*
|
|
100
|
+
* 解析模型支持的采集规格或生成画布,不处理媒体像素。
|
|
75
101
|
*
|
|
76
102
|
* 分辨率桶非空时必须精确匹配;否则按像素面积上下限等比缩放并对齐到
|
|
77
103
|
* 模型要求的像素倍数。
|
|
@@ -85,9 +111,6 @@ interface MediaServicing {
|
|
|
85
111
|
* 上传完成后返回的已存储文件信息。
|
|
86
112
|
*/
|
|
87
113
|
declare class StoredFile {
|
|
88
|
-
/**
|
|
89
|
-
* 存储结果
|
|
90
|
-
*/
|
|
91
114
|
/**
|
|
92
115
|
* 文件的访问地址。
|
|
93
116
|
*/
|
|
@@ -102,10 +125,6 @@ declare class StoredFile {
|
|
|
102
125
|
readonly etag?: string;
|
|
103
126
|
/**
|
|
104
127
|
* 创建已存储文件信息。
|
|
105
|
-
*
|
|
106
|
-
* @param init.url 文件访问地址。
|
|
107
|
-
* @param init.objectKey 对象键。
|
|
108
|
-
* @param init.etag 对象存储返回的 ETag。
|
|
109
128
|
*/
|
|
110
129
|
constructor(init: {
|
|
111
130
|
url: string;
|
|
@@ -179,87 +198,87 @@ interface StorageServicing {
|
|
|
179
198
|
*/
|
|
180
199
|
declare class RealtimeConfiguration {
|
|
181
200
|
/**
|
|
182
|
-
*
|
|
201
|
+
* 实时生成使用的模型;未知名称原样透传到测试环境,媒体与 RTC 默认配置同 X2.1。
|
|
183
202
|
*/
|
|
184
203
|
readonly model: RealtimeModelName;
|
|
185
204
|
/**
|
|
186
|
-
* 实时连接使用的 RTC
|
|
205
|
+
* 实时连接使用的 RTC 提供方,默认取模型支持列表的首项,创建后不可切换。
|
|
187
206
|
*/
|
|
188
207
|
readonly provider: RtcProvider;
|
|
189
208
|
/**
|
|
190
|
-
*
|
|
209
|
+
* 是否自动调整上下行档位,默认 true。关闭时从 L1 启动且不读写历史档位,仍支持手动调档。
|
|
191
210
|
*/
|
|
192
|
-
readonly
|
|
211
|
+
readonly isAdaptiveQualityEnabled: boolean;
|
|
193
212
|
/**
|
|
194
|
-
*
|
|
195
|
-
*
|
|
196
|
-
* @param init.model 实时生成业务使用的模型;未知名称原样透传,默认配置同 x2.1-preview。
|
|
197
|
-
* @param init.provider RTC 提供方,默认按模型定义选择;必须受模型支持,创建后不可切换。
|
|
198
|
-
* @param init.isFrameInterpolationEnabled 是否默认开启远端生成画面的插帧,默认 false。
|
|
213
|
+
* 补全 RTC 和自动调档默认值,并校验模型名称与 RTC 提供方配置。
|
|
199
214
|
*/
|
|
200
215
|
constructor(init: {
|
|
201
216
|
model: RealtimeModelName;
|
|
202
217
|
provider?: RtcProvider;
|
|
203
|
-
|
|
218
|
+
isAdaptiveQualityEnabled?: boolean;
|
|
204
219
|
});
|
|
205
220
|
}
|
|
206
221
|
|
|
207
|
-
/** 输入帧顺时针旋转角度;与前置摄像头的水平镜像独立。 */
|
|
208
|
-
type CameraRotation = 0 | 90 | 180 | 270;
|
|
209
|
-
|
|
210
222
|
/**
|
|
211
|
-
*
|
|
223
|
+
* 输入帧顺时针旋转角度;与前置摄像头的水平镜像独立。
|
|
212
224
|
*/
|
|
213
|
-
type
|
|
225
|
+
type CameraRotation = 0 | 90 | 180 | 270;
|
|
226
|
+
|
|
214
227
|
/**
|
|
215
|
-
*
|
|
228
|
+
* 实时连接的网络质量等级。
|
|
216
229
|
*/
|
|
217
|
-
|
|
218
|
-
readonly uplinkQuality?: NetworkQualityLevel;
|
|
230
|
+
declare enum RealtimeNetworkQualityLevel {
|
|
219
231
|
/**
|
|
220
|
-
*
|
|
232
|
+
* 尚无有效的质量评估。
|
|
221
233
|
*/
|
|
222
|
-
|
|
234
|
+
unknown = "Unknown",
|
|
223
235
|
/**
|
|
224
|
-
*
|
|
236
|
+
* 网络质量极好。
|
|
225
237
|
*/
|
|
226
|
-
|
|
238
|
+
excellent = "Excellent",
|
|
227
239
|
/**
|
|
228
|
-
*
|
|
240
|
+
* 网络质量良好。
|
|
229
241
|
*/
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
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"
|
|
243
259
|
}
|
|
244
260
|
/**
|
|
245
|
-
*
|
|
261
|
+
* 本端 RTC 连接的网络统计,不依赖远端生成流是否已经到达。
|
|
246
262
|
*/
|
|
247
|
-
interface
|
|
263
|
+
interface RealtimeNetworkQuality {
|
|
248
264
|
/**
|
|
249
|
-
*
|
|
265
|
+
* 上行网络质量等级,沿用 RTC 厂商的评估结果。
|
|
250
266
|
*/
|
|
251
|
-
readonly
|
|
267
|
+
readonly uplink: RealtimeNetworkQualityLevel;
|
|
252
268
|
/**
|
|
253
|
-
*
|
|
269
|
+
* 所有下行连接的平均网络质量。
|
|
254
270
|
*/
|
|
255
|
-
readonly
|
|
271
|
+
readonly downlink: RealtimeNetworkQualityLevel;
|
|
256
272
|
}
|
|
273
|
+
/**
|
|
274
|
+
* undefined 表示尚无采样或连接已清理。
|
|
275
|
+
*/
|
|
276
|
+
type RealtimeNetworkQualityListener = (statistics: RealtimeNetworkQuality | undefined) => void;
|
|
257
277
|
|
|
278
|
+
/**
|
|
279
|
+
* 实时生成指令和参考资源。
|
|
280
|
+
*/
|
|
258
281
|
interface RealtimeContextInit {
|
|
259
|
-
/**
|
|
260
|
-
* 服务端直接读取的网络视频。
|
|
261
|
-
*/
|
|
262
|
-
referenceVideo?: RealtimeReferenceVideo;
|
|
263
282
|
/**
|
|
264
283
|
* 实时生成使用的文本条件。
|
|
265
284
|
*/
|
|
@@ -273,13 +292,6 @@ interface RealtimeContextInit {
|
|
|
273
292
|
* 单次实时生成任务的文本和参考资源上下文。
|
|
274
293
|
*/
|
|
275
294
|
declare class RealtimeContext {
|
|
276
|
-
/**
|
|
277
|
-
* 服务端直接读取的网络视频。
|
|
278
|
-
*/
|
|
279
|
-
readonly referenceVideo?: RealtimeReferenceVideo;
|
|
280
|
-
/**
|
|
281
|
-
* 生成条件
|
|
282
|
-
*/
|
|
283
295
|
/**
|
|
284
296
|
* 实时生成使用的文本条件。
|
|
285
297
|
*/
|
|
@@ -294,13 +306,143 @@ declare class RealtimeContext {
|
|
|
294
306
|
constructor(init: RealtimeContextInit);
|
|
295
307
|
}
|
|
296
308
|
|
|
297
|
-
/**
|
|
309
|
+
/**
|
|
310
|
+
* 可通过生成信令传递的 JSON 数据。
|
|
311
|
+
*/
|
|
298
312
|
type JsonValue = string | number | boolean | null | JsonValue[] | {
|
|
299
313
|
[key: string]: JsonValue;
|
|
300
314
|
};
|
|
301
|
-
/**
|
|
315
|
+
/**
|
|
316
|
+
* 合并到本次 start 或 change_condition 的 params;不缓存,不允许覆盖 SDK 字段。
|
|
317
|
+
*/
|
|
302
318
|
type RealtimeExtraParams = Record<string, JsonValue>;
|
|
303
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
|
+
|
|
304
446
|
/**
|
|
305
447
|
* SDK 向接入方暴露的统一错误码。
|
|
306
448
|
*/
|
|
@@ -337,10 +479,6 @@ declare enum XmaxErrorCode {
|
|
|
337
479
|
* 本地媒体读取、解码、同步或帧处理发生错误。
|
|
338
480
|
*/
|
|
339
481
|
mediaError = "MEDIA_ERROR",
|
|
340
|
-
/**
|
|
341
|
-
* 当前系统、设备或视频规格不支持远端视频插帧。
|
|
342
|
-
*/
|
|
343
|
-
frameInterpolationUnsupported = "FRAME_INTERPOLATION_UNSUPPORTED",
|
|
344
482
|
/**
|
|
345
483
|
* 接入方未授予相机权限。
|
|
346
484
|
*/
|
|
@@ -382,9 +520,6 @@ type XmaxErrorListener = (error: XmaxError) => void;
|
|
|
382
520
|
* 表示 SDK 抛出或回调给接入方的统一错误。
|
|
383
521
|
*/
|
|
384
522
|
declare class XmaxError extends Error {
|
|
385
|
-
/**
|
|
386
|
-
* 错误信息
|
|
387
|
-
*/
|
|
388
523
|
/**
|
|
389
524
|
* SDK 统一错误码。
|
|
390
525
|
*/
|
|
@@ -417,84 +552,6 @@ declare class XmaxError extends Error {
|
|
|
417
552
|
static from(error: unknown): XmaxError;
|
|
418
553
|
}
|
|
419
554
|
|
|
420
|
-
/**
|
|
421
|
-
* 单次录制的最终事件类型。
|
|
422
|
-
*/
|
|
423
|
-
declare enum RealtimeRecordingEventType {
|
|
424
|
-
completed = "completed",
|
|
425
|
-
interrupted = "interrupted",
|
|
426
|
-
failed = "failed"
|
|
427
|
-
}
|
|
428
|
-
/**
|
|
429
|
-
* 已完成文件封装的录制结束原因。
|
|
430
|
-
*/
|
|
431
|
-
declare enum RealtimeRecordingFinishReason {
|
|
432
|
-
durationLimit = "durationLimit",
|
|
433
|
-
generationEnded = "generationEnded",
|
|
434
|
-
restarted = "restarted",
|
|
435
|
-
mediaInterrupted = "mediaInterrupted"
|
|
436
|
-
}
|
|
437
|
-
/**
|
|
438
|
-
* 已封装的录制文件;格式由 blob.type 指示,不保证为 MP4。
|
|
439
|
-
*/
|
|
440
|
-
interface RealtimeRecordingResult {
|
|
441
|
-
/**
|
|
442
|
-
* 可供保存、上传或预览的完整文件;成功裁去长帧等待时,时长短于实际录制时间。
|
|
443
|
-
*/
|
|
444
|
-
readonly blob: Blob;
|
|
445
|
-
/**
|
|
446
|
-
* 录制期间是否接入过未静音的远端音频轨;不表示内容一定有声音。
|
|
447
|
-
*/
|
|
448
|
-
readonly hasAudio: boolean;
|
|
449
|
-
/**
|
|
450
|
-
* 录制结束原因。
|
|
451
|
-
*/
|
|
452
|
-
readonly reason: RealtimeRecordingFinishReason;
|
|
453
|
-
}
|
|
454
|
-
/**
|
|
455
|
-
* 录制终态;成功封装的提前结束返回 interrupted,无法提供有效文件返回 failed。
|
|
456
|
-
*/
|
|
457
|
-
type RealtimeRecordingEvent = {
|
|
458
|
-
type: RealtimeRecordingEventType.completed | RealtimeRecordingEventType.interrupted;
|
|
459
|
-
taskID: string;
|
|
460
|
-
result: RealtimeRecordingResult;
|
|
461
|
-
} | {
|
|
462
|
-
type: RealtimeRecordingEventType.failed;
|
|
463
|
-
taskID: string;
|
|
464
|
-
error: XmaxError;
|
|
465
|
-
};
|
|
466
|
-
/**
|
|
467
|
-
* 每次录制交付一次最终事件,监听器异常不影响实时生成。
|
|
468
|
-
*/
|
|
469
|
-
type RealtimeRecordingListener = (event: RealtimeRecordingEvent) => void;
|
|
470
|
-
|
|
471
|
-
/**
|
|
472
|
-
* 实时生成输入/输出的媒体流。
|
|
473
|
-
*/
|
|
474
|
-
declare class RealtimeMediaStream {
|
|
475
|
-
/**
|
|
476
|
-
* 流标识与轨道
|
|
477
|
-
*/
|
|
478
|
-
/**
|
|
479
|
-
* 媒体流标识。
|
|
480
|
-
*/
|
|
481
|
-
readonly id: string;
|
|
482
|
-
/**
|
|
483
|
-
* 媒体流包含的视频轨道。
|
|
484
|
-
*/
|
|
485
|
-
readonly videoTrack?: RealtimeVideoTrack;
|
|
486
|
-
/**
|
|
487
|
-
* 创建实时媒体流。
|
|
488
|
-
*
|
|
489
|
-
* @param init.id 媒体流标识。
|
|
490
|
-
* @param init.videoTrack 媒体流包含的视频轨道。
|
|
491
|
-
*/
|
|
492
|
-
constructor(init: {
|
|
493
|
-
id: string;
|
|
494
|
-
videoTrack?: RealtimeVideoTrack;
|
|
495
|
-
});
|
|
496
|
-
}
|
|
497
|
-
|
|
498
555
|
/**
|
|
499
556
|
* 实时业务连接状态。
|
|
500
557
|
*/
|
|
@@ -520,7 +577,12 @@ declare enum RealtimeConnectionState {
|
|
|
520
577
|
*/
|
|
521
578
|
connected = "Connected",
|
|
522
579
|
/**
|
|
523
|
-
*
|
|
580
|
+
* 正在启动生成或等待 SDK 视频视图完成首帧及渲染预热。
|
|
581
|
+
* startGeneration 返回远端流后仍可能保持此状态,接入方需挂载视频视图。
|
|
582
|
+
*/
|
|
583
|
+
starting = "Starting",
|
|
584
|
+
/**
|
|
585
|
+
* 生成任务正在运行,SDK 视频视图已完成渲染预热并开始展示画面。
|
|
524
586
|
*/
|
|
525
587
|
generating = "Generating",
|
|
526
588
|
/**
|
|
@@ -539,6 +601,9 @@ type RealtimeReason = {
|
|
|
539
601
|
kind: "failure";
|
|
540
602
|
error: XmaxError;
|
|
541
603
|
};
|
|
604
|
+
/**
|
|
605
|
+
* 正常操作、画面方向变化和错误对应的状态原因。
|
|
606
|
+
*/
|
|
542
607
|
declare const RealtimeReason: {
|
|
543
608
|
normal: RealtimeReason;
|
|
544
609
|
orientationChanged: RealtimeReason;
|
|
@@ -547,26 +612,35 @@ declare const RealtimeReason: {
|
|
|
547
612
|
*/
|
|
548
613
|
failure(error: XmaxError): RealtimeReason;
|
|
549
614
|
};
|
|
615
|
+
/**
|
|
616
|
+
* 实时状态快照的生命周期、业务标识和变化原因。
|
|
617
|
+
*/
|
|
550
618
|
interface RealtimeStateInit {
|
|
619
|
+
/**
|
|
620
|
+
* 当前实时连接生命周期状态。
|
|
621
|
+
*/
|
|
551
622
|
connectionState: RealtimeConnectionState;
|
|
623
|
+
/**
|
|
624
|
+
* 业务会话标识。
|
|
625
|
+
*/
|
|
552
626
|
sessionID?: string;
|
|
627
|
+
/**
|
|
628
|
+
* 当前生成任务标识。
|
|
629
|
+
*/
|
|
553
630
|
taskID?: string;
|
|
631
|
+
/**
|
|
632
|
+
* 当前操作的结束或变更原因。
|
|
633
|
+
*/
|
|
554
634
|
reason?: RealtimeReason;
|
|
555
635
|
}
|
|
556
636
|
/**
|
|
557
637
|
* 实时业务当前状态快照。
|
|
558
638
|
*/
|
|
559
639
|
declare class RealtimeState {
|
|
560
|
-
/**
|
|
561
|
-
* 连接生命周期
|
|
562
|
-
*/
|
|
563
640
|
/**
|
|
564
641
|
* 当前连接生命周期状态。
|
|
565
642
|
*/
|
|
566
643
|
readonly connectionState: RealtimeConnectionState;
|
|
567
|
-
/**
|
|
568
|
-
* 业务标识
|
|
569
|
-
*/
|
|
570
644
|
/**
|
|
571
645
|
* 当前或最近一次实时 Session 标识。
|
|
572
646
|
*/
|
|
@@ -575,20 +649,12 @@ declare class RealtimeState {
|
|
|
575
649
|
* 当前生成任务标识。
|
|
576
650
|
*/
|
|
577
651
|
readonly taskID?: string;
|
|
578
|
-
/**
|
|
579
|
-
* 状态变化原因
|
|
580
|
-
*/
|
|
581
652
|
/**
|
|
582
653
|
* 进入当前状态的原因;正常开始新的操作时清空。
|
|
583
654
|
*/
|
|
584
655
|
readonly reason?: RealtimeReason;
|
|
585
656
|
/**
|
|
586
657
|
* 创建实时状态快照。
|
|
587
|
-
*
|
|
588
|
-
* @param init.connectionState 当前连接生命周期状态。
|
|
589
|
-
* @param init.sessionID 当前或最近一次实时 Session 标识。
|
|
590
|
-
* @param init.taskID 当前生成任务标识。
|
|
591
|
-
* @param init.reason 状态变化原因,默认无。
|
|
592
658
|
*/
|
|
593
659
|
constructor(init: RealtimeStateInit);
|
|
594
660
|
/**
|
|
@@ -604,11 +670,11 @@ declare class RealtimeState {
|
|
|
604
670
|
type RealtimeStateListener = (state: RealtimeState) => void;
|
|
605
671
|
|
|
606
672
|
/**
|
|
607
|
-
*
|
|
608
|
-
*
|
|
673
|
+
* 一次媒体启动的耗时快照,单位为毫秒;undefined 表示该阶段尚未完成或未启用。
|
|
674
|
+
* 新一轮创建媒体源时重置;失败、关闭或断开后保留已完成的值。
|
|
609
675
|
* 仅预览时不产生首帧和总耗时;预览后手动启动生成的等待计入总耗时。
|
|
610
676
|
*/
|
|
611
|
-
interface
|
|
677
|
+
interface RealtimeTiming {
|
|
612
678
|
/**
|
|
613
679
|
* 开始打开摄像头到相机流创建完成(包含权限等待)。
|
|
614
680
|
*/
|
|
@@ -619,71 +685,97 @@ interface RealtimeLaunchTiming {
|
|
|
619
685
|
*/
|
|
620
686
|
readonly permissionMs?: number;
|
|
621
687
|
/**
|
|
622
|
-
*
|
|
688
|
+
* 创建业务会话的耗时。
|
|
689
|
+
*/
|
|
690
|
+
readonly sessionMs?: number;
|
|
691
|
+
/**
|
|
692
|
+
* RTC 适配器进房调用的耗时,不含房间消息配置、心跳启动、预热等待和本地流发布。
|
|
623
693
|
*/
|
|
624
|
-
readonly
|
|
694
|
+
readonly rtcJoinMs?: number;
|
|
625
695
|
/**
|
|
626
696
|
* 发布本地流到 RTC 房间的耗时。
|
|
627
697
|
*/
|
|
628
698
|
readonly publishMs?: number;
|
|
629
699
|
/**
|
|
630
|
-
*
|
|
700
|
+
* 开始发送生成信令到远端视频首帧提交合成器,不包含渲染预热。
|
|
631
701
|
*/
|
|
632
702
|
readonly firstFrameMs?: number;
|
|
633
703
|
/**
|
|
634
|
-
*
|
|
704
|
+
* 远端首帧就绪到渲染预热结束的实际等待时间,不含渐入动画。
|
|
705
|
+
*/
|
|
706
|
+
readonly renderWarmupMs?: number;
|
|
707
|
+
/**
|
|
708
|
+
* 开始打开摄像头到远端渲染预热结束、开始渐入的实际总耗时,并非各项之和。
|
|
635
709
|
*/
|
|
636
710
|
readonly totalMs?: number;
|
|
637
711
|
}
|
|
638
712
|
/**
|
|
639
713
|
* 阶段完成时提供完整快照;不支持帧回调的浏览器以 playing 近似首帧。
|
|
640
714
|
*/
|
|
641
|
-
type
|
|
715
|
+
type RealtimeTimingListener = (timing: RealtimeTiming) => void;
|
|
642
716
|
|
|
643
717
|
/**
|
|
644
|
-
*
|
|
718
|
+
* 上下行视频统计共用的媒体指标;缺失或无效指标为 undefined。
|
|
645
719
|
*/
|
|
646
720
|
interface VideoStatistics {
|
|
647
721
|
/**
|
|
648
|
-
*
|
|
722
|
+
* 视频实际宽度,单位为像素;本地为发送尺寸,远端为接收尺寸。
|
|
649
723
|
*/
|
|
650
|
-
readonly uplinkLossPercent?: number;
|
|
651
724
|
readonly width?: number;
|
|
652
|
-
readonly height?: number;
|
|
653
725
|
/**
|
|
654
|
-
*
|
|
726
|
+
* 视频实际高度,单位为像素;本地为发送尺寸,远端为接收尺寸。
|
|
655
727
|
*/
|
|
656
|
-
readonly
|
|
728
|
+
readonly height?: number;
|
|
657
729
|
/**
|
|
658
730
|
* 实际码率,单位 kbps。
|
|
659
731
|
*/
|
|
660
732
|
readonly bitrateKbps?: number;
|
|
661
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
|
+
}
|
|
662
755
|
/**
|
|
663
756
|
* undefined 表示当前没有可用统计(尚未发布、断开或停止)。
|
|
664
757
|
*/
|
|
665
|
-
type
|
|
758
|
+
type UplinkVideoStatisticsListener = (statistics: UplinkVideoStatistics | undefined) => void;
|
|
666
759
|
/**
|
|
667
760
|
* 一路远端主视频流的接收统计。
|
|
668
761
|
*/
|
|
669
|
-
interface
|
|
670
|
-
readonly userID: string;
|
|
762
|
+
interface DownlinkVideoStatistics extends VideoStatistics {
|
|
671
763
|
/**
|
|
672
|
-
*
|
|
764
|
+
* RTC 用户标识。
|
|
673
765
|
*/
|
|
674
|
-
readonly
|
|
766
|
+
readonly userID: string;
|
|
675
767
|
/**
|
|
676
|
-
*
|
|
768
|
+
* 实际解码帧率,单位 fps。
|
|
677
769
|
*/
|
|
678
|
-
readonly
|
|
770
|
+
readonly decodeFrameRate?: number;
|
|
679
771
|
/**
|
|
680
|
-
* RTC
|
|
772
|
+
* RTC 渲染帧率,单位 fps。
|
|
681
773
|
*/
|
|
682
|
-
readonly
|
|
774
|
+
readonly renderFrameRate?: number;
|
|
683
775
|
/**
|
|
684
|
-
*
|
|
776
|
+
* RTC 云端到本端 SDK 的视频下行丢包率,范围为 0~100,单位 %。
|
|
685
777
|
*/
|
|
686
|
-
readonly
|
|
778
|
+
readonly packetLossPercent?: number;
|
|
687
779
|
/**
|
|
688
780
|
* RTC 媒体端到端延迟估算值,单位 ms;不代表完整 AI 处理链路耗时。
|
|
689
781
|
* 采用各厂商原生口径,Agora end2EndDelay 不包含编码与解码耗时。
|
|
@@ -693,16 +785,173 @@ interface RemoteVideoStatistics extends VideoStatistics {
|
|
|
693
785
|
/**
|
|
694
786
|
* undefined 表示当前结果流没有统计或已被清理。
|
|
695
787
|
*/
|
|
696
|
-
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
|
+
}
|
|
697
933
|
|
|
698
934
|
/**
|
|
699
935
|
* 定义 SDK 对接入方提供的实时媒体与生成控制能力。
|
|
700
936
|
*/
|
|
701
937
|
interface XmaxRealtimeManaging {
|
|
702
938
|
/**
|
|
703
|
-
*
|
|
939
|
+
* 观察当前生成结果的原始 Web 音视频轨道,立即回放当前绑定。
|
|
940
|
+
* 不依赖 WebCodecs;适用于 MediaRecorder 等原生媒体流处理。
|
|
941
|
+
* 轨道仅借用;需要停止或修改时应先 clone(),不得停止 SDK 的原始轨道。
|
|
942
|
+
* 无结果流时回调 undefined;传 undefined 取消监听,不影响订阅、音量或生成。
|
|
943
|
+
* 可与原始帧监听并存,close() 时自动清除。
|
|
704
944
|
*/
|
|
705
|
-
|
|
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>;
|
|
706
955
|
/**
|
|
707
956
|
* 实时能力配置。
|
|
708
957
|
*/
|
|
@@ -712,23 +961,46 @@ interface XmaxRealtimeManaging {
|
|
|
712
961
|
*/
|
|
713
962
|
readonly currentState: RealtimeState;
|
|
714
963
|
/**
|
|
715
|
-
*
|
|
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
|
+
* 当前连接成功提交的下行档位;尚未开始生成、未连接或断开时为空,实际回传可能稍晚生效。
|
|
982
|
+
*/
|
|
983
|
+
readonly downlinkQualityLevel?: RealtimeQualityLevel;
|
|
984
|
+
/**
|
|
985
|
+
* 在生成中指定上行编码档位,不改变媒体采集规格和生成画布。
|
|
986
|
+
* Agora、TRTC 的自动调档从新档位继续;VeRTC 仅应用手动档位。
|
|
716
987
|
*/
|
|
717
|
-
|
|
988
|
+
setUplinkQualityLevel(level: RealtimeQualityLevel): Promise<void>;
|
|
718
989
|
/**
|
|
719
|
-
*
|
|
990
|
+
* 在生成中指定下行回传档位;已启用自动调档时,从新档位继续判断。
|
|
991
|
+
* 发送成功表示请求已提交,不代表服务端已经返回新尺寸。
|
|
720
992
|
*/
|
|
721
|
-
|
|
993
|
+
setDownlinkQualityLevel(level: RealtimeQualityLevel): Promise<void>;
|
|
722
994
|
/**
|
|
723
|
-
*
|
|
724
|
-
* Agora 调整分辨率、帧率和编码码率;TRTC
|
|
725
|
-
* 保留原始 L1
|
|
995
|
+
* 手动升/降一档上行配置,需要正在生成且存在本地上行。
|
|
996
|
+
* Agora、VeRTC 调整分辨率、帧率和编码码率;TRTC 只调整帧率,保留尺寸和码率配置。
|
|
997
|
+
* 保留原始 L1 基准,不改变下行尺寸;已启用的自动调档保持开启。
|
|
726
998
|
* @param direction 升一档或降一档;到达 L1/L5 边界时不重复应用。
|
|
727
999
|
*/
|
|
728
1000
|
adjustUplinkQuality(direction: "upgrade" | "downgrade"): Promise<void>;
|
|
729
1001
|
/**
|
|
730
|
-
*
|
|
731
|
-
*
|
|
1002
|
+
* 手动升/降一档下行输出尺寸,需要正在生成。
|
|
1003
|
+
* 仅改变分辨率,成功发送后同步目标档位;已启用的自动调档保持开启。
|
|
732
1004
|
* 到达 L1/L5 边界时不重复发送;发送成功不代表服务端已生效。
|
|
733
1005
|
*/
|
|
734
1006
|
adjustDownlinkQuality(direction: "upgrade" | "downgrade"): Promise<void>;
|
|
@@ -746,29 +1018,30 @@ interface XmaxRealtimeManaging {
|
|
|
746
1018
|
*/
|
|
747
1019
|
setStateListener(listener?: RealtimeStateListener): Promise<void>;
|
|
748
1020
|
/**
|
|
749
|
-
*
|
|
1021
|
+
* 监听上下行网络质量;立即回放最新快照,尚无采样或断开后回调 undefined。
|
|
750
1022
|
* 独立于日志和远端生成流;传入 undefined 取消监听,监听器异常不影响主流程。
|
|
751
1023
|
*/
|
|
752
|
-
|
|
1024
|
+
setNetworkQualityListener(listener?: RealtimeNetworkQualityListener): Promise<void>;
|
|
753
1025
|
/**
|
|
754
1026
|
* 监听启动耗时;立即回放当前快照,每完成一个阶段再次回调。
|
|
755
|
-
*
|
|
1027
|
+
* 新一轮创建媒体源时重置;失败或终止后冻结,更新生成条件不重置。
|
|
756
1028
|
* 首帧统计需要将远端轨道绑定到 SDK 视频视图,且不会阻塞 startGeneration。
|
|
757
1029
|
* 传入 undefined 清除监听器;监听器异常不影响生成流程。
|
|
1030
|
+
* 开启 performance 日志后,渲染预热完成时另向 console.info 输出启动汇总,不依赖监听器。
|
|
758
1031
|
*/
|
|
759
|
-
|
|
1032
|
+
setTimingListener(listener?: RealtimeTimingListener): Promise<void>;
|
|
760
1033
|
/**
|
|
761
|
-
*
|
|
1034
|
+
* 监听上行分辨率、采集/编码/发送帧率、码率和丢包率,独立于日志开关。
|
|
762
1035
|
* 设置后立即回放最新快照;未取得数据或停止/断开时回调 undefined。
|
|
763
1036
|
* 传入 undefined 取消监听;监听器异常不影响生成流程。
|
|
764
1037
|
*/
|
|
765
|
-
|
|
1038
|
+
setUplinkVideoStatisticsListener(listener?: UplinkVideoStatisticsListener): Promise<void>;
|
|
766
1039
|
/**
|
|
767
|
-
*
|
|
1040
|
+
* 监听下行分辨率、解码/RTC 渲染帧率、码率、丢包率和媒体 E2E 估算值。
|
|
768
1041
|
* 独立于日志开关;立即回放最新快照,流消失或断开时回调 undefined。
|
|
769
1042
|
* 传入 undefined 取消监听;监听器异常不影响生成流程。
|
|
770
1043
|
*/
|
|
771
|
-
|
|
1044
|
+
setDownlinkVideoStatisticsListener(listener?: DownlinkVideoStatisticsListener): Promise<void>;
|
|
772
1045
|
/**
|
|
773
1046
|
* 设置本地媒体预览音量。
|
|
774
1047
|
* @throws 音量超出有效范围时抛出错误。
|
|
@@ -786,6 +1059,7 @@ interface XmaxRealtimeManaging {
|
|
|
786
1059
|
* 将返回的轨道绑定到预览视图;收到有效帧且视图已绑定后进入 `ready`。
|
|
787
1060
|
*
|
|
788
1061
|
* @param options.videoFormat 旋转后的目标规格,尺寸按模型规则解析。
|
|
1062
|
+
* @param options.preset 替代 videoFormat,使用模型支持的摄像头预设和推荐帧率;两者必须且只能提供一个。
|
|
789
1063
|
* @param options.position 前置或后置摄像头。
|
|
790
1064
|
* @param options.useMicrophone 是否采集并发布麦克风音频。
|
|
791
1065
|
* @param options.rotation 输入帧顺时针旋转角度,默认 0;非零角度目前仅支持 Agora,预览和上传均校正方向,镜像保持独立。
|
|
@@ -794,34 +1068,24 @@ interface XmaxRealtimeManaging {
|
|
|
794
1068
|
* @throws 模型不支持相机输入、配置无效、权限或采集启动失败时抛出错误。
|
|
795
1069
|
*/
|
|
796
1070
|
createLocalCameraStream(options: {
|
|
797
|
-
videoFormat: RealtimeVideoFormat;
|
|
798
1071
|
position: CameraPosition;
|
|
799
1072
|
useMicrophone: boolean;
|
|
800
1073
|
rotation?: CameraRotation;
|
|
801
1074
|
enableFrameValidation?: boolean;
|
|
802
|
-
}
|
|
803
|
-
/**
|
|
804
|
-
* 创建服务端直接读取的 HTTP/HTTPS 网络视频源,不采集或发布本地音视频。
|
|
805
|
-
* 本地预览静音播放一次,独立于服务端进度;创建源不会开始生成。
|
|
806
|
-
* 地址必须可由服务端直接访问,不转发浏览器 Cookie 或自定义鉴权头。
|
|
807
|
-
* @param options.url 服务端可直接访问的 HTTP/HTTPS 视频地址。
|
|
808
|
-
* @param options.videoFormat 模型输入及生成画面规格,不是上行编码参数。
|
|
809
|
-
* @param options.sampleMethod 服务端采样方式,默认 time。
|
|
810
|
-
* @param options.onFinish 当前任务收到服务端完成消息且生成就绪后调用一次,不代表尾帧已播放完。
|
|
811
|
-
* @throws 地址、格式无效或已有活动媒体源时抛错;close 释放源,disconnect 保留预览。
|
|
812
|
-
*/
|
|
813
|
-
createNetworkVideoStream(options: {
|
|
814
|
-
url: string;
|
|
1075
|
+
} & ({
|
|
815
1076
|
videoFormat: RealtimeVideoFormat;
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
1077
|
+
preset?: never;
|
|
1078
|
+
} | {
|
|
1079
|
+
preset: RealtimeCameraPreset;
|
|
1080
|
+
videoFormat?: never;
|
|
1081
|
+
})): Promise<RealtimeMediaStream>;
|
|
819
1082
|
/**
|
|
820
1083
|
* 从本地 File/Blob 创建文件视频源,支持 TRTC、Agora 和 VeRTC,不访问摄像头或麦克风。
|
|
821
|
-
*
|
|
1084
|
+
* Canvas 保留完整内容并按媒体尺寸规则缩放,文件音频独立上行,本地预览始终静音。
|
|
1085
|
+
* SDK 单独选择模型生成画布,仅在媒体与画布比例不一致时启用服务端 contain 补边。
|
|
822
1086
|
* 应从用户点击事件直接调用以解锁播放;创建后停在首帧,startGeneration 时开始播放。
|
|
823
1087
|
* @param options.file 包含可解码视频的本地 File 或 Blob。
|
|
824
|
-
* @param options.videoFormat
|
|
1088
|
+
* @param options.videoFormat 帧率及编码配置;宽高保留兼容入参,实际媒体尺寸从文件读取。
|
|
825
1089
|
* @param options.loop 是否循环播放文件音视频,默认 true。
|
|
826
1090
|
* @param options.includeAudio 是否发送文件音频,默认 true;无音轨文件输出静音,false 不创建音频轨。
|
|
827
1091
|
* @throws 提供方不支持、文件/格式无效、浏览器无法解码或播放受限时抛错。
|
|
@@ -834,10 +1098,11 @@ interface XmaxRealtimeManaging {
|
|
|
834
1098
|
}): Promise<RealtimeMediaStream>;
|
|
835
1099
|
/**
|
|
836
1100
|
* 从本地 File/Blob 创建图片视频流,支持 TRTC、Agora 和 VeRTC。
|
|
837
|
-
*
|
|
1101
|
+
* 保留完整内容并按媒体尺寸规则缩放,持续发送同一静止画面,不上传文件、不采集摄像头或麦克风。
|
|
1102
|
+
* SDK 单独选择模型生成画布,仅在媒体与画布比例不一致时启用服务端 contain 补边。
|
|
838
1103
|
* 创建后可直接预览,仍需调用 startGeneration 开始生成;disconnect 保留图片源,close 释放全部资源。
|
|
839
1104
|
* @param options.file 包含浏览器可解码图片的本地 File 或 Blob;动图仅取解码时的静止快照。
|
|
840
|
-
* @param options.videoFormat
|
|
1105
|
+
* @param options.videoFormat 帧率及编码配置;宽高保留兼容入参,实际媒体尺寸从图片读取。
|
|
841
1106
|
* @throws 文件或格式无效、浏览器无法解码、Canvas 采集不可用或已有活动源时抛错。
|
|
842
1107
|
*/
|
|
843
1108
|
createLocalImageStream(options: {
|
|
@@ -845,25 +1110,31 @@ interface XmaxRealtimeManaging {
|
|
|
845
1110
|
videoFormat: RealtimeVideoFormat;
|
|
846
1111
|
}): Promise<RealtimeMediaStream>;
|
|
847
1112
|
/**
|
|
848
|
-
*
|
|
849
|
-
*
|
|
850
|
-
*
|
|
851
|
-
*
|
|
852
|
-
*
|
|
853
|
-
*
|
|
854
|
-
* @
|
|
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 准备失败时抛错并清理本次绑定。
|
|
855
1123
|
*/
|
|
856
|
-
createExternalVideoStream(options:
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
1124
|
+
createExternalVideoStream(options: RealtimeExternalVideoStreamOptions): Promise<RealtimeMediaStream>;
|
|
1125
|
+
/**
|
|
1126
|
+
* 未连接时解绑外部源,清空预览并释放 SDK 输出,不接管接入方采集设备。
|
|
1127
|
+
* 已连接时请先 disconnect;对其他媒体源不做操作。
|
|
1128
|
+
*/
|
|
1129
|
+
stopExternalVideoStream(): Promise<void>;
|
|
860
1130
|
/**
|
|
861
1131
|
* 更新当前本地流的上行视频格式,立即应用于 RTC 编码器,不重连或重启生成。
|
|
862
1132
|
* 传入完整格式;未指定的码率和编码偏好按 RealtimeVideoFormat 默认规则解析。
|
|
863
|
-
*
|
|
864
|
-
*
|
|
1133
|
+
* 尺寸向下做 4 对齐,优先保持精确比例;帧率、码率及编码偏好保持传入配置。
|
|
1134
|
+
* 成功后本地轨道的 videoFormat 记录对齐后的格式,后续重连继续使用该格式。
|
|
1135
|
+
* 模型生成仍使用创建本地流时的格式;此接口不改变生成尺寸。
|
|
865
1136
|
* 实际发送规格受设备、浏览器和网络影响,应通过统计回调确认。
|
|
866
|
-
* 上行自适应以本次成功应用的完整格式作为新的 L1 基准;Agora 按档位缩放尺寸和帧率,TRTC
|
|
1137
|
+
* 上行自适应以本次成功应用的完整格式作为新的 L1 基准;Agora 按档位缩放尺寸和帧率,TRTC 仅调帧率。
|
|
867
1138
|
*
|
|
868
1139
|
* @param videoFormat 本次完整的上行尺寸、帧率和编码配置。
|
|
869
1140
|
* @throws 无本地相机、外部、图片或文件视频流、其他操作进行中、参数无效或 RTC 更新失败时抛错。
|
|
@@ -892,11 +1163,11 @@ interface XmaxRealtimeManaging {
|
|
|
892
1163
|
/**
|
|
893
1164
|
* 使用当前 Manager 创建的本地流建立实时连接。
|
|
894
1165
|
*
|
|
895
|
-
* 创建实时会话、加入 RTC
|
|
1166
|
+
* 创建实时会话、加入 RTC 房间、发布本地媒体并启动会话心跳。
|
|
896
1167
|
* 启用帧检测时,发布前并行等待相机预热(固定 200ms),避免把黑帧推给 RTC。
|
|
897
1168
|
* 返回的远端媒体流在生成开始后承载远端生成画面。
|
|
898
1169
|
*
|
|
899
|
-
* @param localStream 由当前 Manager
|
|
1170
|
+
* @param localStream 由当前 Manager 创建的摄像头、外部视频轨、本地图片或本地视频文件。
|
|
900
1171
|
* @returns 远端生成结果占位的媒体流。
|
|
901
1172
|
* @throws 本地流不属于当前 Manager、已有活动连接、会话创建或进房
|
|
902
1173
|
* 发布失败时抛出错误;失败时自动释放连接资源并恢复本地预览。
|
|
@@ -916,14 +1187,14 @@ interface XmaxRealtimeManaging {
|
|
|
916
1187
|
*
|
|
917
1188
|
* 尚未连接时先建立实时连接;已在生成时默认更新条件,restart 为 true 时重新开始生成。
|
|
918
1189
|
* 首次生成必须提供条件上下文,之后缺省时复用最近一次缓存的上下文。
|
|
1190
|
+
* 返回后请将远端流挂载到 SDK 视频视图;首帧及渲染预热完成后状态才进入 generating。
|
|
919
1191
|
*
|
|
920
|
-
* @param options.localStream 由当前 Manager
|
|
1192
|
+
* @param options.localStream 由当前 Manager 创建的摄像头、外部视频轨或本地文件。
|
|
921
1193
|
* @param options.context 本次生成使用的条件上下文;缺省时复用缓存。
|
|
922
1194
|
* @param options.restart 是否保留 RTC 连接并创建新任务发送 start,默认 false;不预先发送 stop。
|
|
923
1195
|
* @param options.faceRestoration 是否启用原始人脸回贴,默认 false;正在生成时通过 change_condition 更新。
|
|
924
1196
|
* @param options.extraParams 合并到本次 start 或 change_condition 的 params;不缓存,自动恢复时不携带,不允许覆盖 SDK 字段。
|
|
925
|
-
* @
|
|
926
|
-
* @returns 承载远端生成画面的媒体流。
|
|
1197
|
+
* @returns 可挂载的远端媒体流,不等待渲染预热;展示就绪以 generating 状态为准。
|
|
927
1198
|
* @throws extraParams 包含非 JSON 数据、循环引用或 SDK 保留字段时,在连接或更新前抛出 invalidConfiguration。
|
|
928
1199
|
* @throws 本地流不属于当前 Manager、缺少可用的条件上下文、信令发送
|
|
929
1200
|
* 或生成确认失败时抛出错误;失败时自动停止生成任务并释放连接资源。
|
|
@@ -934,7 +1205,6 @@ interface XmaxRealtimeManaging {
|
|
|
934
1205
|
restart?: boolean;
|
|
935
1206
|
faceRestoration?: boolean;
|
|
936
1207
|
extraParams?: RealtimeExtraParams;
|
|
937
|
-
record?: boolean;
|
|
938
1208
|
}): Promise<RealtimeMediaStream>;
|
|
939
1209
|
}
|
|
940
1210
|
|
|
@@ -955,18 +1225,25 @@ declare enum XmaxEnvironment {
|
|
|
955
1225
|
* 环境对应的 Xmax API Base URL。
|
|
956
1226
|
*/
|
|
957
1227
|
declare function apiBaseURL(environment: XmaxEnvironment): string;
|
|
1228
|
+
/**
|
|
1229
|
+
* 环境对应的实时会话 API 地址。
|
|
1230
|
+
*/
|
|
1231
|
+
declare function realtimeApiBaseURL(environment: XmaxEnvironment): string;
|
|
958
1232
|
|
|
959
1233
|
/**
|
|
960
1234
|
* 控制 XmaxSDK 输出的日志类型(位掩码,可组合)。
|
|
961
1235
|
*/
|
|
962
1236
|
declare enum XmaxLoggerOption {
|
|
1237
|
+
/**
|
|
1238
|
+
* 关闭全部 SDK 日志输出。
|
|
1239
|
+
*/
|
|
963
1240
|
none = 0,
|
|
964
1241
|
/**
|
|
965
1242
|
* Room、API、Realtime、Storage 等业务运行日志。
|
|
966
1243
|
*/
|
|
967
1244
|
business = 1,
|
|
968
1245
|
/**
|
|
969
|
-
* RTC 网络质量和音视频运行统计,输出到 console.info。
|
|
1246
|
+
* 启动耗时、RTC 网络质量和音视频运行统计,输出到 console.info。
|
|
970
1247
|
*/
|
|
971
1248
|
performance = 2,
|
|
972
1249
|
/**
|
|
@@ -984,14 +1261,41 @@ declare class XmaxLogger {
|
|
|
984
1261
|
* 分类日志
|
|
985
1262
|
*/
|
|
986
1263
|
static readonly realtime: XmaxLogger;
|
|
1264
|
+
/**
|
|
1265
|
+
* RTC 引擎、进退房和媒体传输日志。
|
|
1266
|
+
*/
|
|
987
1267
|
static readonly rtc: XmaxLogger;
|
|
1268
|
+
/**
|
|
1269
|
+
* 本地媒体准备与释放日志。
|
|
1270
|
+
*/
|
|
988
1271
|
static readonly media: XmaxLogger;
|
|
1272
|
+
/**
|
|
1273
|
+
* API 请求及响应日志。
|
|
1274
|
+
*/
|
|
989
1275
|
static readonly api: XmaxLogger;
|
|
1276
|
+
/**
|
|
1277
|
+
* 文件上传与下载日志。
|
|
1278
|
+
*/
|
|
990
1279
|
static readonly storage: XmaxLogger;
|
|
1280
|
+
/**
|
|
1281
|
+
* 房间消息和心跳日志。
|
|
1282
|
+
*/
|
|
991
1283
|
static readonly room: XmaxLogger;
|
|
1284
|
+
/**
|
|
1285
|
+
* 流发布、订阅及生成控制日志。
|
|
1286
|
+
*/
|
|
992
1287
|
static readonly stream: XmaxLogger;
|
|
1288
|
+
/**
|
|
1289
|
+
* 视频视图与渲染管线日志。
|
|
1290
|
+
*/
|
|
993
1291
|
static readonly render: XmaxLogger;
|
|
1292
|
+
/**
|
|
1293
|
+
* 触点采样和轨迹交互日志。
|
|
1294
|
+
*/
|
|
994
1295
|
static readonly interaction: XmaxLogger;
|
|
1296
|
+
/**
|
|
1297
|
+
* 摄像头和麦克风权限日志。
|
|
1298
|
+
*/
|
|
995
1299
|
static readonly permission: XmaxLogger;
|
|
996
1300
|
/**
|
|
997
1301
|
* 日志类别
|
|
@@ -1038,6 +1342,9 @@ declare class XmaxLogger {
|
|
|
1038
1342
|
private log;
|
|
1039
1343
|
}
|
|
1040
1344
|
|
|
1345
|
+
/**
|
|
1346
|
+
* SDK 的身份、环境和日志选项。
|
|
1347
|
+
*/
|
|
1041
1348
|
interface XmaxConfigurationInit {
|
|
1042
1349
|
/**
|
|
1043
1350
|
* 调用 Xmax 服务使用的 API Key。
|
|
@@ -1056,9 +1363,6 @@ interface XmaxConfigurationInit {
|
|
|
1056
1363
|
* SDK 全局配置。
|
|
1057
1364
|
*/
|
|
1058
1365
|
declare class XmaxConfiguration {
|
|
1059
|
-
/**
|
|
1060
|
-
* 服务身份与环境
|
|
1061
|
-
*/
|
|
1062
1366
|
/**
|
|
1063
1367
|
* 调用 Xmax 服务使用的 API Key。
|
|
1064
1368
|
*/
|
|
@@ -1067,19 +1371,12 @@ declare class XmaxConfiguration {
|
|
|
1067
1371
|
* SDK 连接的服务环境,同时决定日志细项语言:国内为中文,海外为英文。
|
|
1068
1372
|
*/
|
|
1069
1373
|
readonly environment: XmaxEnvironment;
|
|
1070
|
-
/**
|
|
1071
|
-
* 日志配置
|
|
1072
|
-
*/
|
|
1073
1374
|
/**
|
|
1074
1375
|
* SDK 输出的日志类型;默认为不输出日志。
|
|
1075
1376
|
*/
|
|
1076
1377
|
readonly loggerOptions: XmaxLoggerOption;
|
|
1077
1378
|
/**
|
|
1078
|
-
*
|
|
1079
|
-
*
|
|
1080
|
-
* @param init.apiKey 调用 Xmax 服务使用的 API Key。
|
|
1081
|
-
* @param init.environment SDK 连接的服务环境;默认为国内环境。
|
|
1082
|
-
* @param init.loggerOptions SDK 输出的日志类型;默认为空。
|
|
1379
|
+
* 清理 API Key 首尾空白并补全环境和日志默认值;有效性检查由 validate 执行。
|
|
1083
1380
|
*/
|
|
1084
1381
|
constructor(init: XmaxConfigurationInit);
|
|
1085
1382
|
/**
|
|
@@ -1093,16 +1390,34 @@ declare class XmaxConfiguration {
|
|
|
1093
1390
|
* 非实时视频的输出质量。
|
|
1094
1391
|
*/
|
|
1095
1392
|
declare enum NonRealtimeQuality {
|
|
1393
|
+
/**
|
|
1394
|
+
* 标准清晰度输出。
|
|
1395
|
+
*/
|
|
1096
1396
|
sd = "sd",
|
|
1397
|
+
/**
|
|
1398
|
+
* 高清输出。
|
|
1399
|
+
*/
|
|
1097
1400
|
hd = "hd"
|
|
1098
1401
|
}
|
|
1099
1402
|
/**
|
|
1100
1403
|
* 服务端任务状态;上传进度不属于任务状态。
|
|
1101
1404
|
*/
|
|
1102
1405
|
declare enum NonRealtimeTaskStatus {
|
|
1406
|
+
/**
|
|
1407
|
+
* 任务已提交,等待服务端处理。
|
|
1408
|
+
*/
|
|
1103
1409
|
submitted = "submitted",
|
|
1410
|
+
/**
|
|
1411
|
+
* 服务端正在处理任务。
|
|
1412
|
+
*/
|
|
1104
1413
|
processing = "processing",
|
|
1414
|
+
/**
|
|
1415
|
+
* 任务处理完成。
|
|
1416
|
+
*/
|
|
1105
1417
|
completed = "completed",
|
|
1418
|
+
/**
|
|
1419
|
+
* 任务处理失败。
|
|
1420
|
+
*/
|
|
1106
1421
|
error = "error"
|
|
1107
1422
|
}
|
|
1108
1423
|
/**
|
|
@@ -1138,16 +1453,49 @@ interface NonRealtimeTaskOptions {
|
|
|
1138
1453
|
* 非实时生成结果;缺失或 null 的服务端字段规范化为 undefined。
|
|
1139
1454
|
*/
|
|
1140
1455
|
interface NonRealtimeResult {
|
|
1456
|
+
/**
|
|
1457
|
+
* 生成结果文件的访问 URL。
|
|
1458
|
+
*/
|
|
1141
1459
|
readonly url?: string;
|
|
1460
|
+
/**
|
|
1461
|
+
* 服务端上传生成结果时返回的错误说明。
|
|
1462
|
+
*/
|
|
1142
1463
|
readonly uploadError?: string;
|
|
1464
|
+
/**
|
|
1465
|
+
* 生成结果的上传状态。
|
|
1466
|
+
*/
|
|
1143
1467
|
readonly uploadStatus?: string;
|
|
1468
|
+
/**
|
|
1469
|
+
* 服务端结果收尾耗时,单位为毫秒。
|
|
1470
|
+
*/
|
|
1144
1471
|
readonly finalizeDurationMs?: number;
|
|
1472
|
+
/**
|
|
1473
|
+
* 服务端使用的压缩等级。
|
|
1474
|
+
*/
|
|
1145
1475
|
readonly compressionLevel?: string;
|
|
1476
|
+
/**
|
|
1477
|
+
* 结果视频的帧数。
|
|
1478
|
+
*/
|
|
1146
1479
|
readonly frameCount?: number;
|
|
1480
|
+
/**
|
|
1481
|
+
* 结果视频帧率,单位为 fps。
|
|
1482
|
+
*/
|
|
1147
1483
|
readonly fps?: number;
|
|
1484
|
+
/**
|
|
1485
|
+
* 结果视频时长,单位为毫秒。
|
|
1486
|
+
*/
|
|
1148
1487
|
readonly durationMs?: number;
|
|
1488
|
+
/**
|
|
1489
|
+
* 结果文件大小,单位为字节。
|
|
1490
|
+
*/
|
|
1149
1491
|
readonly fileSizeBytes?: number;
|
|
1492
|
+
/**
|
|
1493
|
+
* 服务端处理时丢弃的帧数。
|
|
1494
|
+
*/
|
|
1150
1495
|
readonly droppedFrameCount?: number;
|
|
1496
|
+
/**
|
|
1497
|
+
* 结果压缩前的文件大小,单位为字节。
|
|
1498
|
+
*/
|
|
1151
1499
|
readonly originalFileSizeBytes?: number;
|
|
1152
1500
|
}
|
|
1153
1501
|
/**
|
|
@@ -1155,23 +1503,77 @@ interface NonRealtimeResult {
|
|
|
1155
1503
|
* 时间戳保持服务端原始字符串,不推断时区。
|
|
1156
1504
|
*/
|
|
1157
1505
|
interface NonRealtimeTask {
|
|
1506
|
+
/**
|
|
1507
|
+
* 非实时任务标识,用于查询和恢复任务。
|
|
1508
|
+
*/
|
|
1158
1509
|
readonly uid: string;
|
|
1510
|
+
/**
|
|
1511
|
+
* 服务端返回的运行状态。
|
|
1512
|
+
*/
|
|
1159
1513
|
readonly status: NonRealtimeTaskStatus;
|
|
1514
|
+
/**
|
|
1515
|
+
* 业务用户标识。
|
|
1516
|
+
*/
|
|
1160
1517
|
readonly userUid?: string;
|
|
1518
|
+
/**
|
|
1519
|
+
* 本次视频生成使用的文字指令。
|
|
1520
|
+
*/
|
|
1161
1521
|
readonly prompt?: string;
|
|
1522
|
+
/**
|
|
1523
|
+
* 已上传源视频的 URL。
|
|
1524
|
+
*/
|
|
1162
1525
|
readonly videoPath?: string;
|
|
1526
|
+
/**
|
|
1527
|
+
* 已上传参考图片的 URL。
|
|
1528
|
+
*/
|
|
1163
1529
|
readonly referencePath?: string;
|
|
1530
|
+
/**
|
|
1531
|
+
* 服务端任务处理器标识。
|
|
1532
|
+
*/
|
|
1164
1533
|
readonly processorId?: string;
|
|
1534
|
+
/**
|
|
1535
|
+
* 生成结果使用的输出质量。
|
|
1536
|
+
*/
|
|
1165
1537
|
readonly quality?: NonRealtimeQuality;
|
|
1538
|
+
/**
|
|
1539
|
+
* 提交任务时指定的处理帧率,单位为 fps。
|
|
1540
|
+
*/
|
|
1166
1541
|
readonly requestedFps?: number;
|
|
1542
|
+
/**
|
|
1543
|
+
* 服务端最终使用的处理帧率,单位为 fps。
|
|
1544
|
+
*/
|
|
1167
1545
|
readonly resolvedFps?: number;
|
|
1546
|
+
/**
|
|
1547
|
+
* 服务端已执行的重试次数。
|
|
1548
|
+
*/
|
|
1168
1549
|
readonly retryCount?: number;
|
|
1550
|
+
/**
|
|
1551
|
+
* 源视频时长,单位为秒。
|
|
1552
|
+
*/
|
|
1169
1553
|
readonly videoDurationSeconds?: number;
|
|
1554
|
+
/**
|
|
1555
|
+
* 服务端报告的计费时长,单位为秒。
|
|
1556
|
+
*/
|
|
1170
1557
|
readonly billableDurationSeconds?: number;
|
|
1558
|
+
/**
|
|
1559
|
+
* 服务端报告的任务消耗点数。
|
|
1560
|
+
*/
|
|
1171
1561
|
readonly chargePoints?: number;
|
|
1562
|
+
/**
|
|
1563
|
+
* 生成结果的文件和处理信息。
|
|
1564
|
+
*/
|
|
1172
1565
|
readonly result?: NonRealtimeResult;
|
|
1566
|
+
/**
|
|
1567
|
+
* 服务端开始处理任务的时间。
|
|
1568
|
+
*/
|
|
1173
1569
|
readonly processStartTime?: string;
|
|
1570
|
+
/**
|
|
1571
|
+
* 任务创建时间。
|
|
1572
|
+
*/
|
|
1174
1573
|
readonly createTimestamp?: string;
|
|
1574
|
+
/**
|
|
1575
|
+
* 任务最近更新时间。
|
|
1576
|
+
*/
|
|
1175
1577
|
readonly updateTimestamp?: string;
|
|
1176
1578
|
}
|
|
1177
1579
|
/**
|
|
@@ -1195,9 +1597,21 @@ interface NonRealtimeTaskListOptions {
|
|
|
1195
1597
|
* 按创建时间从新到旧排列的任务页。
|
|
1196
1598
|
*/
|
|
1197
1599
|
interface NonRealtimeTaskPage {
|
|
1600
|
+
/**
|
|
1601
|
+
* 当前页码,从 1 开始。
|
|
1602
|
+
*/
|
|
1198
1603
|
readonly pageNumber: number;
|
|
1604
|
+
/**
|
|
1605
|
+
* 当前页的容量。
|
|
1606
|
+
*/
|
|
1199
1607
|
readonly pageSize: number;
|
|
1608
|
+
/**
|
|
1609
|
+
* 符合查询条件的任务总数。
|
|
1610
|
+
*/
|
|
1200
1611
|
readonly total: number;
|
|
1612
|
+
/**
|
|
1613
|
+
* 当前页中的任务,按创建时间从新到旧排列。
|
|
1614
|
+
*/
|
|
1201
1615
|
readonly list: readonly NonRealtimeTask[];
|
|
1202
1616
|
}
|
|
1203
1617
|
|
|
@@ -1260,9 +1674,6 @@ interface XmaxNonRealtimeManaging {
|
|
|
1260
1674
|
* SDK 的统一入口,负责创建实时、非实时和媒体服务组件。
|
|
1261
1675
|
*/
|
|
1262
1676
|
declare class XmaxClient {
|
|
1263
|
-
/**
|
|
1264
|
-
* 客户端配置
|
|
1265
|
-
*/
|
|
1266
1677
|
/**
|
|
1267
1678
|
* 客户端使用的全局配置。
|
|
1268
1679
|
*/
|
|
@@ -1280,7 +1691,7 @@ declare class XmaxClient {
|
|
|
1280
1691
|
constructor(configuration: XmaxConfiguration);
|
|
1281
1692
|
/**
|
|
1282
1693
|
* 创建实时媒体 Manager。
|
|
1283
|
-
*
|
|
1694
|
+
* 已知模型按环境选择实时会话地址;自定义模型使用测试地址,覆盖整个会话生命周期。
|
|
1284
1695
|
*
|
|
1285
1696
|
* @param options 实时生成模型等业务配置。
|
|
1286
1697
|
* @returns 可用于本地相机预览、实时连接与生成的实时 Manager。
|
|
@@ -1294,7 +1705,7 @@ declare class XmaxClient {
|
|
|
1294
1705
|
/**
|
|
1295
1706
|
* 创建媒体处理与能力查询 Service。
|
|
1296
1707
|
*
|
|
1297
|
-
* @param model 媒体输入规则使用的模型,默认为 `x2.
|
|
1708
|
+
* @param model 媒体输入规则使用的模型,默认为 `x2.1`。
|
|
1298
1709
|
*/
|
|
1299
1710
|
createMediaService(model?: RealtimeModelName): MediaServicing;
|
|
1300
1711
|
/**
|
|
@@ -1320,8 +1731,7 @@ declare class NonRealtimeTaskError extends XmaxError {
|
|
|
1320
1731
|
}
|
|
1321
1732
|
|
|
1322
1733
|
/**
|
|
1323
|
-
*
|
|
1324
|
-
* 模型输入尺寸与远端插帧能力。
|
|
1734
|
+
* 统一计算本地媒体、生成画布及回传尺寸,并查询平台媒体能力。
|
|
1325
1735
|
*/
|
|
1326
1736
|
declare class MediaService implements MediaServicing {
|
|
1327
1737
|
/**
|
|
@@ -1330,18 +1740,29 @@ declare class MediaService implements MediaServicing {
|
|
|
1330
1740
|
readonly model: RealtimeModelName;
|
|
1331
1741
|
/**
|
|
1332
1742
|
* 创建媒体服务。
|
|
1333
|
-
*
|
|
1334
|
-
* @param model 媒体输入规则使用的模型,默认为 `x2.0-trtc`。
|
|
1335
1743
|
*/
|
|
1336
1744
|
constructor(model?: RealtimeModelName);
|
|
1337
1745
|
/**
|
|
1338
|
-
*
|
|
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
|
+
* 选择比例最接近的模型生成画布;无固定桶时按模型像素预算和对齐规则计算。
|
|
1339
1756
|
*/
|
|
1340
|
-
|
|
1757
|
+
resolveGenerationSize(resolvedMediaSize: ModelSize): ModelSize;
|
|
1341
1758
|
/**
|
|
1342
|
-
*
|
|
1759
|
+
* 综合下行宽高上限计算回传尺寸,不放大、优先保持比例并按 4 对齐。
|
|
1343
1760
|
*/
|
|
1344
|
-
|
|
1761
|
+
resolveTargetSize(resolvedMediaSize: ModelSize, maximumSize: ModelSize): ModelSize;
|
|
1762
|
+
/**
|
|
1763
|
+
* 拒绝无效或不能安全参与面积计算的媒体像素尺寸。
|
|
1764
|
+
*/
|
|
1765
|
+
private validateIntegralSize;
|
|
1345
1766
|
/**
|
|
1346
1767
|
* 按模型分辨率档位或像素预算解析输入尺寸,保持宽高比例并对齐;不支持的规格抛错。
|
|
1347
1768
|
*/
|
|
@@ -1360,16 +1781,34 @@ declare class MediaService implements MediaServicing {
|
|
|
1360
1781
|
* Xmax API 支持的 HTTP 请求方法。
|
|
1361
1782
|
*/
|
|
1362
1783
|
declare enum ApiMethod {
|
|
1784
|
+
/**
|
|
1785
|
+
* 读取服务端资源。
|
|
1786
|
+
*/
|
|
1363
1787
|
get = "GET",
|
|
1788
|
+
/**
|
|
1789
|
+
* 提交数据或创建资源。
|
|
1790
|
+
*/
|
|
1364
1791
|
post = "POST",
|
|
1792
|
+
/**
|
|
1793
|
+
* 更新服务端资源。
|
|
1794
|
+
*/
|
|
1365
1795
|
put = "PUT",
|
|
1796
|
+
/**
|
|
1797
|
+
* 删除服务端资源。
|
|
1798
|
+
*/
|
|
1366
1799
|
delete = "DELETE"
|
|
1367
1800
|
}
|
|
1368
1801
|
/**
|
|
1369
1802
|
* 请求控制选项;signal 仅取消本地 HTTP 请求,不撤销服务端已执行的操作。
|
|
1370
1803
|
*/
|
|
1371
1804
|
interface ApiRequestOptions {
|
|
1805
|
+
/**
|
|
1806
|
+
* 取消请求及后续等待的信号。
|
|
1807
|
+
*/
|
|
1372
1808
|
signal?: AbortSignal;
|
|
1809
|
+
/**
|
|
1810
|
+
* 允许页面退出后继续完成符合浏览器限制的请求。
|
|
1811
|
+
*/
|
|
1373
1812
|
keepalive?: boolean;
|
|
1374
1813
|
}
|
|
1375
1814
|
/**
|
|
@@ -1416,10 +1855,25 @@ interface ApiServicing {
|
|
|
1416
1855
|
* 解析后的临时存储配置。
|
|
1417
1856
|
*/
|
|
1418
1857
|
interface TemporaryStorageConfiguration {
|
|
1858
|
+
/**
|
|
1859
|
+
* 对象存储桶名称。
|
|
1860
|
+
*/
|
|
1419
1861
|
bucket: string;
|
|
1862
|
+
/**
|
|
1863
|
+
* 对象存储桶所在区域。
|
|
1864
|
+
*/
|
|
1420
1865
|
region: string;
|
|
1866
|
+
/**
|
|
1867
|
+
* 对象存储访问域名。
|
|
1868
|
+
*/
|
|
1421
1869
|
endpoint?: string;
|
|
1870
|
+
/**
|
|
1871
|
+
* 上传对象的键名前缀。
|
|
1872
|
+
*/
|
|
1422
1873
|
prefix: string;
|
|
1874
|
+
/**
|
|
1875
|
+
* 对象存储临时鉴权凭据。
|
|
1876
|
+
*/
|
|
1423
1877
|
credentials: {
|
|
1424
1878
|
accessKeyID: string;
|
|
1425
1879
|
secretAccessKey: string;
|
|
@@ -1454,6 +1908,9 @@ interface StorageObjectClient {
|
|
|
1454
1908
|
* 对象存储客户端工厂;生产实现按临时凭证创建 COS 客户端。
|
|
1455
1909
|
*/
|
|
1456
1910
|
type StorageObjectClientFactory = (configuration: TemporaryStorageConfiguration) => Promise<StorageObjectClient>;
|
|
1911
|
+
/**
|
|
1912
|
+
* 对象存储上传所需的接口与客户端依赖。
|
|
1913
|
+
*/
|
|
1457
1914
|
interface StorageServiceOptions {
|
|
1458
1915
|
/**
|
|
1459
1916
|
* Xmax API 请求组件。
|
|
@@ -1492,6 +1949,9 @@ declare class StorageService implements StorageServicing {
|
|
|
1492
1949
|
* 标识生成
|
|
1493
1950
|
*/
|
|
1494
1951
|
private readonly dateGenerator;
|
|
1952
|
+
/**
|
|
1953
|
+
* 生成上传对象键名中的唯一标识。
|
|
1954
|
+
*/
|
|
1495
1955
|
private readonly identifierGenerator;
|
|
1496
1956
|
/**
|
|
1497
1957
|
* 创建存储 Service。
|
|
@@ -1561,26 +2021,14 @@ declare class StorageService implements StorageServicing {
|
|
|
1561
2021
|
private static nonEmpty;
|
|
1562
2022
|
}
|
|
1563
2023
|
|
|
1564
|
-
interface RemoteFrameInterpolationOptions {
|
|
1565
|
-
size: ModelSize;
|
|
1566
|
-
onActiveChange?: (active: boolean) => void;
|
|
1567
|
-
/**
|
|
1568
|
-
* 实际提交画布呈现时通知,参数表示是否为插值帧。
|
|
1569
|
-
*/
|
|
1570
|
-
onFramePresented?: (interpolated: boolean) => void;
|
|
1571
|
-
onFailure: (error: unknown) => void;
|
|
1572
|
-
}
|
|
1573
|
-
|
|
1574
2024
|
/**
|
|
1575
|
-
*
|
|
2025
|
+
* 显示一路本地或远端视频轨道的实时视频视图(框架无关)。
|
|
1576
2026
|
*
|
|
1577
2027
|
* 通过 `attach(to:)` 挂载到任意容器元素;设置 `track` 后自动渲染。
|
|
1578
2028
|
* 轨道注册了渲染绑定时走绑定管线,否则按 `mediaStreamTrack` 直接渲染。
|
|
2029
|
+
* SDK 远端轨道在首帧后按绑定配置预热,再按视图配置渐入;本地预览不延迟。
|
|
1579
2030
|
*/
|
|
1580
|
-
declare class
|
|
1581
|
-
/**
|
|
1582
|
-
* 视图元素
|
|
1583
|
-
*/
|
|
2031
|
+
declare class XmaxRealtimeVideoView {
|
|
1584
2032
|
/**
|
|
1585
2033
|
* 视图根元素(div,内含一个 video 元素)。
|
|
1586
2034
|
*/
|
|
@@ -1590,8 +2038,17 @@ declare class XmaxVideoView {
|
|
|
1590
2038
|
*/
|
|
1591
2039
|
readonly videoElement: HTMLVideoElement;
|
|
1592
2040
|
/**
|
|
1593
|
-
*
|
|
2041
|
+
* 视频显示层,与触控轨迹层独立。
|
|
1594
2042
|
*/
|
|
2043
|
+
private readonly videoLayer;
|
|
2044
|
+
/**
|
|
2045
|
+
* 首帧预热只影响媒体内容,不影响轨迹交互层。
|
|
2046
|
+
*/
|
|
2047
|
+
private readonly warmupLayer;
|
|
2048
|
+
/**
|
|
2049
|
+
* 视频画面是否可见。
|
|
2050
|
+
*/
|
|
2051
|
+
private videoVisible;
|
|
1595
2052
|
/**
|
|
1596
2053
|
* 首帧实际提交显示时调用(一次性;换轨后重新武装)。
|
|
1597
2054
|
*/
|
|
@@ -1600,25 +2057,38 @@ declare class XmaxVideoView {
|
|
|
1600
2057
|
* 渲染状态
|
|
1601
2058
|
*/
|
|
1602
2059
|
private currentTrack?;
|
|
2060
|
+
/**
|
|
2061
|
+
* 画面在视口中的缩放与裁剪方式。
|
|
2062
|
+
*/
|
|
1603
2063
|
private contentMode;
|
|
2064
|
+
/**
|
|
2065
|
+
* 是否对显示画面应用水平镜像。
|
|
2066
|
+
*/
|
|
1604
2067
|
private mirrored;
|
|
1605
2068
|
/**
|
|
1606
2069
|
* 首帧显示通知与异步回调版本
|
|
1607
2070
|
*/
|
|
1608
2071
|
private hasNotifiedFrameDisplay;
|
|
2072
|
+
/**
|
|
2073
|
+
* 视频开始播放时尝试通知首帧就绪。
|
|
2074
|
+
*/
|
|
1609
2075
|
private onPlaying?;
|
|
2076
|
+
/**
|
|
2077
|
+
* 首帧观察回调的取消句柄。
|
|
2078
|
+
*/
|
|
1610
2079
|
private videoFrameCallbackID?;
|
|
1611
|
-
private frameNotificationSequence;
|
|
1612
2080
|
/**
|
|
1613
|
-
*
|
|
2081
|
+
* 首帧通知版本,避免旧流回调影响新流。
|
|
1614
2082
|
*/
|
|
1615
|
-
private
|
|
1616
|
-
private interpolationPipeline?;
|
|
1617
|
-
private interpolationCanvas?;
|
|
2083
|
+
private frameNotificationSequence;
|
|
1618
2084
|
/**
|
|
1619
2085
|
* 呈现统计组件
|
|
1620
2086
|
*/
|
|
1621
2087
|
private readonly statisticsController;
|
|
2088
|
+
/**
|
|
2089
|
+
* 远端画面预热与渐入组件
|
|
2090
|
+
*/
|
|
2091
|
+
private readonly warmupController;
|
|
1622
2092
|
/**
|
|
1623
2093
|
* DOM 挂载状态
|
|
1624
2094
|
*/
|
|
@@ -1627,17 +2097,46 @@ declare class XmaxVideoView {
|
|
|
1627
2097
|
* 轨迹交互配置与懒加载视图
|
|
1628
2098
|
*/
|
|
1629
2099
|
private interactionEnabled;
|
|
2100
|
+
/**
|
|
2101
|
+
* 接入方提供的轨迹视觉效果实现。
|
|
2102
|
+
*/
|
|
1630
2103
|
private customTrajectoryRenderer?;
|
|
2104
|
+
/**
|
|
2105
|
+
* 视口触点采样与轨迹效果覆盖层。
|
|
2106
|
+
*/
|
|
1631
2107
|
private trajectoryOverlay?;
|
|
1632
2108
|
/**
|
|
1633
2109
|
* 创建单轨视频视图。
|
|
1634
2110
|
*
|
|
1635
2111
|
* @param options.videoContentMode 视频内容显示模式,默认 fill。
|
|
2112
|
+
* @param options.isInteractionEnabled 是否允许远端轨迹交互,默认 true。
|
|
2113
|
+
* @param options.fadeInDurationMs 远端画面预热完成后的渐入时长,单位为毫秒,默认 300;0 表示直接显示,不跳过预热。
|
|
2114
|
+
* @throws 渐入时长为负数或非有限数值时抛出 invalidConfiguration。
|
|
1636
2115
|
*/
|
|
1637
2116
|
constructor(options?: {
|
|
1638
2117
|
videoContentMode?: VideoContentMode;
|
|
1639
2118
|
isInteractionEnabled?: boolean;
|
|
2119
|
+
/**
|
|
2120
|
+
* 远端画面的渐入时长,单位为毫秒,默认 300;0 表示预热完成后直接显示。
|
|
2121
|
+
*/
|
|
2122
|
+
fadeInDurationMs?: number;
|
|
1640
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);
|
|
1641
2140
|
/**
|
|
1642
2141
|
* 是否允许远端轨迹交互;本地轨道没有交互绑定,不受此开关影响。
|
|
1643
2142
|
*/
|
|
@@ -1675,7 +2174,7 @@ declare class XmaxVideoView {
|
|
|
1675
2174
|
*/
|
|
1676
2175
|
get videoContentMode(): VideoContentMode;
|
|
1677
2176
|
/**
|
|
1678
|
-
*
|
|
2177
|
+
* 更新视频的内容缩放方式;相同配置不重复应用。
|
|
1679
2178
|
*/
|
|
1680
2179
|
set videoContentMode(mode: VideoContentMode);
|
|
1681
2180
|
/**
|
|
@@ -1694,26 +2193,14 @@ declare class XmaxVideoView {
|
|
|
1694
2193
|
* 从容器元素移除。
|
|
1695
2194
|
*/
|
|
1696
2195
|
detach(): void;
|
|
1697
|
-
/**
|
|
1698
|
-
* 设置网络视频预览;静音播放一次,不捕获或发布媒体轨道。 @internal
|
|
1699
|
-
*/
|
|
1700
|
-
setVideoURL(url: string | null): void;
|
|
1701
2196
|
/**
|
|
1702
2197
|
* 直接设置渲染用的媒体流(绑定管线和直接渲染共用)。 @internal
|
|
1703
2198
|
*/
|
|
1704
2199
|
setMediaStream(stream: MediaStream | null): void;
|
|
1705
2200
|
/**
|
|
1706
|
-
*
|
|
1707
|
-
*/
|
|
1708
|
-
setFrameInterpolation(options?: RemoteFrameInterpolationOptions): void;
|
|
1709
|
-
/**
|
|
1710
|
-
* 视图已挂载且媒体与配置就绪时创建插帧画布和管线,避免重复启动。
|
|
2201
|
+
* 新生成任务重新等待首帧和预热,不替换正在播放的媒体流。 @internal
|
|
1711
2202
|
*/
|
|
1712
|
-
|
|
1713
|
-
/**
|
|
1714
|
-
* 停止并释放插帧管线,移除辅助画布,保留原始视频元素。
|
|
1715
|
-
*/
|
|
1716
|
-
private stopInterpolation;
|
|
2203
|
+
prepareForGeneration(): void;
|
|
1717
2204
|
/**
|
|
1718
2205
|
* 接入轨道画面:优先走注册的渲染绑定,否则按媒体轨直接渲染。
|
|
1719
2206
|
*/
|
|
@@ -1730,6 +2217,10 @@ declare class XmaxVideoView {
|
|
|
1730
2217
|
* 换流、解绑或卸载时取消观察,防止迟到的首帧归入下一条流。
|
|
1731
2218
|
*/
|
|
1732
2219
|
private cancelFrameDisplayNotification;
|
|
2220
|
+
/**
|
|
2221
|
+
* 仅远端渲染绑定启用预热,本地预览和普通媒体直接显示。
|
|
2222
|
+
*/
|
|
2223
|
+
private prepareRenderWarmup;
|
|
1733
2224
|
/**
|
|
1734
2225
|
* 应用显示模式与镜像样式。
|
|
1735
2226
|
*/
|
|
@@ -1749,15 +2240,12 @@ declare class XmaxVideoView {
|
|
|
1749
2240
|
}
|
|
1750
2241
|
|
|
1751
2242
|
/**
|
|
1752
|
-
*
|
|
2243
|
+
* 双轨视频容器:在本地预览和远端生成画面之间自动切换(框架无关)。
|
|
1753
2244
|
*
|
|
1754
|
-
*
|
|
2245
|
+
* 设置 SDK 远端轨道后,等待首帧及渲染预热结束再渐入远端画面;
|
|
1755
2246
|
* 远端轨道置空时立即恢复本地预览。
|
|
1756
2247
|
*/
|
|
1757
|
-
declare class
|
|
1758
|
-
/**
|
|
1759
|
-
* 视图元素
|
|
1760
|
-
*/
|
|
2248
|
+
declare class XmaxRealtimeDualVideoView {
|
|
1761
2249
|
/**
|
|
1762
2250
|
* 视图根元素。
|
|
1763
2251
|
*/
|
|
@@ -1766,26 +2254,49 @@ declare class XmaxRealtimeVideoView {
|
|
|
1766
2254
|
* 视频视图
|
|
1767
2255
|
*/
|
|
1768
2256
|
private readonly localVideoView;
|
|
2257
|
+
/**
|
|
2258
|
+
* 展示生成结果流的远端视频视图。
|
|
2259
|
+
*/
|
|
1769
2260
|
private readonly remoteVideoView;
|
|
1770
2261
|
/**
|
|
1771
2262
|
* 公共配置
|
|
1772
2263
|
*/
|
|
1773
2264
|
private currentLocalTrack?;
|
|
2265
|
+
/**
|
|
2266
|
+
* 当前绑定的远端视频轨。
|
|
2267
|
+
*/
|
|
1774
2268
|
private currentRemoteTrack?;
|
|
2269
|
+
/**
|
|
2270
|
+
* 画面在视口中的缩放与裁剪方式。
|
|
2271
|
+
*/
|
|
1775
2272
|
private contentMode;
|
|
2273
|
+
/**
|
|
2274
|
+
* 远端画面渐入时长,单位为秒。
|
|
2275
|
+
*/
|
|
2276
|
+
private fadeInDuration;
|
|
1776
2277
|
/**
|
|
1777
2278
|
* 创建实时视频容器。
|
|
1778
2279
|
*
|
|
1779
2280
|
* @param options.localTrack 需要持续预览的本地视频轨道。
|
|
1780
2281
|
* @param options.remoteTrack 需要覆盖显示的远端生成视频轨道。
|
|
1781
2282
|
* @param options.videoContentMode 本地与远端视频的内容显示模式,默认 fill。
|
|
2283
|
+
* @param options.remoteVideoFadeInDuration 远端渐入时长,单位为秒,默认 0.3;非正数或非有限值关闭动画。
|
|
1782
2284
|
*/
|
|
1783
2285
|
constructor(options?: {
|
|
1784
2286
|
localTrack?: RealtimeVideoTrack;
|
|
1785
2287
|
remoteTrack?: RealtimeVideoTrack;
|
|
1786
2288
|
videoContentMode?: VideoContentMode;
|
|
2289
|
+
remoteVideoFadeInDuration?: number;
|
|
1787
2290
|
isInteractionEnabled?: boolean;
|
|
1788
2291
|
});
|
|
2292
|
+
/**
|
|
2293
|
+
* 远端画面的渐入时长,单位为秒,默认 0.3。
|
|
2294
|
+
*/
|
|
2295
|
+
get remoteVideoFadeInDuration(): number;
|
|
2296
|
+
/**
|
|
2297
|
+
* 配置下一次渐入;非正数或非有限值关闭动画,不跳过首帧等待及渲染预热。
|
|
2298
|
+
*/
|
|
2299
|
+
set remoteVideoFadeInDuration(duration: number);
|
|
1789
2300
|
/**
|
|
1790
2301
|
* 当前显示的本地视频轨道。
|
|
1791
2302
|
*/
|
|
@@ -1812,7 +2323,7 @@ declare class XmaxRealtimeVideoView {
|
|
|
1812
2323
|
set localTrack(track: RealtimeVideoTrack | undefined);
|
|
1813
2324
|
/**
|
|
1814
2325
|
* 当前显示的远端生成视频轨道。
|
|
1815
|
-
*
|
|
2326
|
+
* SDK 远端轨道等待首帧及预热后渐入;置空时立即恢复本地预览。
|
|
1816
2327
|
*/
|
|
1817
2328
|
get remoteTrack(): RealtimeVideoTrack | undefined;
|
|
1818
2329
|
/**
|
|
@@ -1844,7 +2355,7 @@ declare class XmaxRealtimeVideoView {
|
|
|
1844
2355
|
*/
|
|
1845
2356
|
detach(): void;
|
|
1846
2357
|
/**
|
|
1847
|
-
*
|
|
2358
|
+
* 更新远端轨道绑定;SDK 轨道共用单轨视图的预热,普通轨道等待首帧后渐入。
|
|
1848
2359
|
*/
|
|
1849
2360
|
private updateRemoteTrack;
|
|
1850
2361
|
/**
|
|
@@ -1853,4 +2364,90 @@ declare class XmaxRealtimeVideoView {
|
|
|
1853
2364
|
private showRemoteVideo;
|
|
1854
2365
|
}
|
|
1855
2366
|
|
|
1856
|
-
|
|
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 };
|