帮你快速理解、总结文档立即下载

AtomicPusher

最近更新时间:2026-10-23 14:57:33
我的收藏

简介

典型使用流程:通过 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

推流器与推流目标之间的连接状态。 状态机(典型迁移):
startPush
DISCONNECTED ─────────────▶ 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
StateFlow<PusherStatistics>
推流器运行时统计。
pusherInfo
StateFlow<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>
自定义元数据。