On this page

## Type Definitions

### ConnectionState

连接状态

Type:

- 'new' | 'connecting' | 'connected' | 'failed' | 'disconnected' | 'reconnecting' | 'not_support' | 'limit_exceeded'

### CloudMode

云模式

- `public` 公有云
- `public_intl` 公有云国际站
- `private` 私有云

Type:

- 'public' | 'public_intl' | 'private'

### SDKMode

服务模式

- `server` 专属加速模式
- `server2` 普通加速模式

Type:

- 'server' | 'server2'

### MediaType

媒体类型

Type:

- 'video' | 'audio'

### RoomState

房间状态

Type:

- 'joining' | 'joined' | 'unjoined'

### SignalingState

信令状态

Type:

- 'new' | 'scheduling' | 'scheduled' | 'connecting' | 'connected' | 'disconnected' | 'closed' | 'reconnecting'

### MqttConnectionState

MQTT 连接状态

Type:

- 'new' | 'connecting' | 'connected' | 'reconnecting' | 'error' | 'closed'

### PermissionState

网关设备权限

Type:

- 'master' | 'guest'

### Gateway

网关信息

Type:

- object

Properties

Name | Type | Attributes | Description
--- | --- | --- | ---
`deviceId` | string |  | 现场设备 ID。公有云模式下，返回的 ID 的格式为 `${projectId}/${fieldDeviceId}`
`deviceName` | string |  |
`deviceType` | string |  |
`streamCount` | number |  |
`status` | string |  |
`version` | string |  | 网关 SDK 版本号
`licenseExpire` | number | <optional> | License 过期时间戳（秒）

### WebRTCStats

媒体流统计信息

Type:

- object

Properties

Name | Type | Attributes | Description
--- | --- | --- | ---
`srcUserId` | string |  | 媒体流推流 ID
`trackId` | string |  | 媒体流流 ID
`streamId` | number |  | 媒体流流号
`mediaType` | MediaType |  | 媒体类型
`bitrate` | number |  | 当前码率，单位为 Mbps
`packetsReceived` | number |  | 接收到的 RTP 数据包总数，累积值
`packetsLost` | number |  | 丢失的 RTP 数据包总数，累积值
`lost` | number |  | 当前丢包率，单位为 %
`lostAvg` | number |  | 平均丢包率，单位为 %
`rtt` | number |  | RTT（往返时间），单位为 ms
`rttAvg` | number |  | RTT（往返时间）平均值，单位为 ms
`codec` | string |  | 媒体流编解码 MIME 类型
`decoderImplementation` | string |  | 解码器标识
`decoderType` | 'hardware' | 'software' | 'unknown' |  | 解码器类型： hardware 硬件解码器 software 软件解码器 unknown 未知类型
`nack` | number |  | NACK 数据包发送总次数，累积值
`firCount` | number |  | FIR 数量
`pliCount` | number |  | PLI 数量，仅对视频流生效
`framesReceived` | number |  | 接收到的帧总数，累积值，仅对视频流生效
`framesDecoded` | number |  | 解码的帧总数，累积值，仅对视频流生效
`keyFramesDecoded` | number |  | 解码的关键帧总数，累积值，仅对视频流生效
`resolution` | string |  | 分辨率，格式为 `${width}x${height}`，仅对视频流生效
`fps` | number |  | 帧率，仅对视频流生效
`decodeTime` | number |  | 当前解码耗时，单位为 ms，仅对视频流生效
`decodeTimeAvg` | number |  | 平均解码耗时，单位为 ms，仅对视频流生效
`processingDelay` | number |  | 当前处理视频帧的耗时，单位为 ms，仅对视频流生效
`processingDelayAvg` | number |  | 平均处理视频帧的耗时，单位为 ms，仅对视频流生效
`audioLevel` | number |  | 当前音频轨道音量，取值范围为 0 到 1，仅对音频流生效
`jitter` | number |  | 抖动，单位为 s
`jitterBuffer` | number |  | 当前抖动缓冲区延迟，单位为 ms
`jitterBufferAvg` | number |  | 平均抖动缓冲区延迟，单位为 ms
`jitterBufferTarget` | number |  | 当前目标抖动缓冲延迟，单位为 ms
`jitterBufferTargetAvg` | number |  | 平均目标抖动缓冲延迟，单位为 ms
`latency` | number |  | 视频延迟，单位为 ms
`latency1` | number | <optional> |
`latency2` | number | <optional> |
`lag100` | number |  | 视频 100ms 卡顿率
`lag150` | number |  | 视频 150ms 卡顿率
`nackDelta` | number |  | 周期增量：当前采集周期内 NACK 发送次数
`firCountDelta` | number |  | 周期增量：当前采集周期内 FIR 数量
`pliCountDelta` | number |  | 周期增量：当前采集周期内 PLI 数量
`framesReceivedDelta` | number |  | 周期增量：当前采集周期内接收帧数
`framesDecodedDelta` | number |  | 周期增量：当前采集周期内解码帧数
`packetsReceivedDelta` | number |  | 周期增量：当前采集周期内接收包数
`packetsLostDelta` | number |  | 周期增量：当前采集周期内丢包数
`stableFps` | number |  | 稳定帧率：10s 滑动窗口平均值，排除 0 值，仅对视频流生效

### DiagnosisReport

诊断报告

Type:

- object

Properties

Name | Type | Attributes | Description
--- | --- | --- | ---
`diag_error` | string |  | 诊断错误信息，若没有错误则返回 `'ok'`，否则返回错误信息
`device_id` | string |  | 现场设备 ID
`field_pid` | string | <optional> | 现场设备进程 ID
`license_check` | string | <optional> | 现场设备 License 检测，若通过则返回 `'ok'`，否则返回错误信息
`field_mqtt_connect` | string | <optional> | 现场设备 MQTT 连接状态，若连接正常则返回 `'ok'`，否则返回错误信息
`remote_mqtt_connect` | string |  | 远端设备 MQTT 连接状态，若连接正常则返回 `'ok'`，否则返回错误信息
`result` | Array |  | 视频流诊断报告
`result[].stream_id` | number |  | 视频流 ID
`result[].field` | object | <optional> | 现场设备视频流诊断报告 ###### Properties
Name | Type | Description
--- | --- | ---
`field_mode` | string | 现场设备服务模式
`signal_connect` | string | 现场设备信令连接状态，若连接正常则返回 `'ok'`，否则返回错误信息
`media_connect` | string | 现场设备媒体连接状态，若连接正常则返回 `'ok'`，否则返回错误信息
`video_transfer` | string | 现场设备视频传输状态，若视频传输正常则返回 `'ok'`，否则返回错误信息
`video_capture` | string | 现场设备视频采集状态，若视频编码正常则返回 `'ok'`，否则返回错误信息
`video_encode` | string | 现场设备视频编码状态，若视频编码正常则返回 `'ok'`，否则返回错误信息
`rtt` | Array.<number> | 现场设备 RTT 统计信息，单位为毫秒，统计间隔为 2 秒
`lost` | Array.<number> | 现场设备丢包率统计信息，统计间隔为 2 秒
`bps` | Array.<number> | 现场设备比特率统计信息，单位为 kbps，统计间隔为 2 秒
`fps` | Array.<number> | 现场设备帧率统计信息，统计间隔为 2 秒
`result[].remote` | object | <optional> | 远端设备视频流诊断报告 ###### Properties
Name | Type | Description
--- | --- | ---
`remote_mode` | string | 远端设备服务模式
`signal_connect` | string | 远端设备信令连接状态，若连接正常则返回 `'ok'`，否则返回错误信息
`media_connect` | string | 远端设备媒体连接状态，若连接正常则返回 `'ok'`，否则返回错误信息
`video_transfer` | string | 远端设备视频传输状态，若视频传输正常则返回 `'ok'`，否则返回错误信息
`video_decode` | string | 远端设备视频解码状态，若视频解码正常则返回 `'ok'`，否则返回错误信息
`lag_k100` | number | 远端设备 100ms 卡顿率
`lag_k150` | number | 远端设备 150ms 卡顿率
`rtt` | Array.<number> | 远端设备 RTT 统计信息，单位为毫秒，统计间隔为 2 秒
`lost` | Array.<number> | 远端设备丢包率统计信息，统计间隔为 2 秒
`bps` | Array.<number> | 远端设备比特率统计信息，单位为 kbps，统计间隔为 2 秒
`fps` | Array.<number> | 远端设备帧率统计信息，统计间隔为 2 秒
`latency` | Array.<number> | 远端设备延迟统计信息，单位为毫秒，统计间隔为 2 秒
`webrtc_stats` | Array.<WebRTCStats> | 远端设备完整统计信息，统计间隔为 2 秒

### OnEventAutoplayResponse

自动播放返回类型

Type:

- object

Properties

Name | Type | Description
--- | --- | ---
`type` | 'autoplay' |
`data` | object | ###### Properties
Name | Type | Attributes | Description
--- | --- | --- | ---
`code` | number |  | 0 success -1 failed 20 mqtt client not found （只在公有云场景下出现） 21 mqtt client not connected （只在公有云场景下出现） 22 mqtt publish message failed （只在公有云场景下出现） 25 mqtt sessionId not found （只在公有云场景下出现）
`message` | string |  |
`fieldDeviceId` | string |  |
`srcUserId` | string |  |
`streamId` | number |  |
`trackId` | string |  |
`mediaType` | MediaType |  |
`videoWidth` | number | <optional> |
`videoHeight` | number | <optional> |

### OnEventWebRTCStatsResponse

媒体流统计信息回调

Type:

- object

Properties

Name | Type | Description
--- | --- | ---
`type` | 'webrtcStats' |
`data` | Array.<WebRTCStats> |

### OnEventGatewayStatsResponse

远端设备媒体流统计信息回调

stats 数组中每个元素的字段（可能随网关版本变化，以下仅列出常见字段）：

- stream: number // 流 ID
- fps: number // 帧率（fps）
- bps: number // 码率（bps）
- rtt: number // RTT（ms）
- jitter: number // 抖动（ms）
- lost: number // 丢包数（包）
- w: number // 编码宽度（px）
- h: number // 编码高度（px）
- encode_cost: number // 编码耗时（ms）

Type:

- object

Properties

Name | Type | Description
--- | --- | ---
`type` | 'gatewayStats' |
`data` | object | ###### Properties
Name | Type | Description
--- | --- | ---
`fieldDeviceId` | string |
`stats` | any |

### OnEventLocalTrackUnpublishedResponse

本地音频流自动取消推流回调

Type:

- object

Properties

Name | Type | Description
--- | --- | ---
`type` | 'localTrackUnpublished' |
`data` | Object |

### LatencyReportItem

视频延迟上报单条数据

Type:

- object

Properties

Name | Type | Description
--- | --- | ---
`fieldDeviceId` | string | 现场设备 ID
`streamId` | number | 视频流号
`trackId` | string | 媒体流 ID
`latency` | number | 视频延迟（ms），与当前帧级延迟计算一致
`vcct` | number | 视频信道往返时延（ms）
`rcct` | number | 控制信道往返时延（ms）
`gatewayVideoTime` | number | 网关视频时间戳（ms）

### OnEventLatencyReportResponse

视频延迟回调（帧级触发）

Type:

- object

Properties

Name | Type | Description
--- | --- | ---
`type` | 'latencyReport' |
`data` | Array.<LatencyReportItem> |

### OnEventResponse

OnEvent 回调

Type:

- OnEventAutoplayResponse | OnEventWebRTCStatsResponse | OnEventGatewayStatsResponse | OnEventLocalTrackUnpublishedResponse | OnEventLatencyReportResponse

Type anything to view search result