简介
典型使用流程:通过
AtomicPusher.shared.setView(view) 绑定本地预览视图,调用 startPush(config) 开始推流,监听 state 获取推流状态变化,并通过 release() 释放资源。功能特性
PusherState:实时推流状态,包含连接状态、统计信息、直播间信息等。
PusherEvent:推流事件回调,包含错误、直播结束、被踢出等事件类型。
API 列表
数据结构
PusherCode
推流错误码枚举,用于上报推流操作结果和运行时错误。
枚举值 | 值 | 说明 |
OK | 0 | 无错误,操作成功。 |
ERROR_INVALID_PARAMETER | -1 | 参数非法。 |
ERROR_INVALID_STATE | -2 | 当前状态不允许该操作(如正在推流时重复开播、未开播就修改配置)。 |
ERROR_START_PUSH_REQUEST_FAILED | -3 | 开播请求链路失败(服务端 / 信令 / TRTC)。 |
ERROR_UPDATE_CONFIG_REQUEST_FAILED | -4 | 更新配置请求链路失败(服务端 / 信令)。 |
PusherConnectState
推流器与推流目标之间的连接状态。 状态机(典型迁移):
startPushDISCONNECTED ─────────────▶ CONNECTING▲ ││ │ join/push succeeded│ ▼│ CONNECTED│ ││ network jitter / dropped, SDK auto-reconnects│ ▼│ CONNECTING│ ││ reconnect succeeded ─▶ CONNECTED└───── reconnect failed / stopPush / release
说明:
DISCONNECTED 为初始状态;调用 stopPush / release 后也会回到该状态。 自动重连过程复用 CONNECTING,不区分“首次连接”与“重连”。枚举值 | 值 | 说明 |
DISCONNECTED | 0 | 未连接。初始状态,或主动停止推流 / 最终重连失败后。 |
CONNECTING | 1 | 连接中。用于首次进房握手和断线后自动重连。 |
CONNECTED | 2 | 已连接,推流链路正常。 |
PusherListener
推流事件监听器,用于接收推流错误、直播结束、被踢出等一次性事件。通过
addListener / removeListener 注册/移除监听器。PusherStatistics
推流器运行时统计信息。
属性 | 类型 | 说明 |
videoWidth | Int | 视频宽度(像素)。 |
videoHeight | Int | 视频高度(像素)。 |
videoFps | Int | 视频帧率(fps)。 |
videoBitrate | Int | 视频码率(bps)。 |
audioBitrate | Int | 音频码率(bps)。 |
rtt | Int | 网络往返时延(毫秒)。 |
packetLossRate | Int | 网络丢包率(百分比)。 |
PusherState
推流器响应式状态,携带 AtomicPusher 的状态。可通过
state 读取当前值或观察变化。属性 | 类型 | 说明 |
networkState | 连接状态。 | |
statistics | 推流器运行时统计。 | |
pusherInfo | 推流器直播间信息。 | |
totalViewerCount | StateFlow<Int> | 总观众数。 |
PusherInfo
推流器直播间信息。既作为
startPush / updateConfig 的输入参数,也在 state.pusherInfo 中携带引擎返回的直播间状态。属性 | 类型 | 说明 |
liveID | String | 直播 ID。 |
liveName | String | 直播名称。 |
coverURL | String | 封面 URL。 |
backgroundURL | String | 背景 URL。 |
notice | String | 公告。 |
createTime | Long | 创建时间。 |
categoryList | List<Int> | 分类列表。 |
isPublicVisible | Boolean | 是否公开可见。 |
metaData | Map<String, String> | 自定义元数据。 |