tencent cloud

直播 SDK

AtomicPusher

下载
聚焦模式
字号
最后更新时间: 2026-11-02 17:31:48

简介

典型使用流程:通过 AtomicPusher.shared.setView(view) 绑定本地预览视图,调用 startPush(config) 开始推流,监听 state 获取推流状态变化,并通过 release() 释放资源。

功能特性

PusherState:实时推流状态,包含连接状态、统计信息、直播间信息等。
PusherEvent:推流事件回调,包含错误、直播结束、被踢出等事件类型。

可订阅数据

PusherState 的字段描述如下:
属性名
类型
描述
networkState
ValueListenable<PusherConnectState>
连接状态。
statistics
ValueListenable<PusherStatistics>
推流器运行时统计。
pusherInfo
ValueListenable<PusherInfo>
推流器直播间信息。
totalViewerCount
ValueListenable<int>
总观众数。

API 列表

函数名
描述
shared
获取全局单例。
添加推流事件回调监听器。
移除推流事件回调监听器。
setView
设置渲染视图。
startPush
开始推流(直播)。
stopPush
停止推流(直播)。
更新直播间配置。
release
释放推流器资源。
通过键值对启用高级特性。

获取实例

shared

获取全局单例。

观察状态和事件

addListener

添加推流事件回调监听器。
void addListener(PusherListener? listener);
版本信息
从3.5版本开始支持。
参数说明
参数名
类型
描述
listener
监听器。

removeListener

移除推流事件回调监听器。
void removeListener(PusherListener? listener);
版本信息
从3.5版本开始支持。
参数说明
参数名
类型
描述
listener
监听器。

视图管理

setView

设置渲染视图。本地采集的视频帧将渲染到给定的 AtomicLiveView 容器中。
void setView(AtomicLiveWidget view);
版本信息
从3.5版本开始支持。
参数说明
参数名
类型
描述
view
渲染视图容器。

推流控制

startPush

开始推流(直播)。传入直播间配置,SDK 将据此创建推流链路。
void startPush(PusherInfo config);
版本信息
从3.5版本开始支持。
参数说明
参数名
类型
描述
config
直播间配置。

stopPush

停止推流(直播)。
void stopPush();
版本信息
从3.5版本开始支持。

updateConfig

更新直播间配置。在 startPush 之后调用,更新直播间名称、封面、分类等信息。
void updateConfig(PusherInfo config, List<PusherInfoModifyFlag> modifyFlagList);
版本信息
从3.5版本开始支持。
参数说明
参数名
类型
描述
config
更新后的配置。
modifyFlagList
修改标志列表。

release

主动释放推流器。调用后所有 API 变为空操作,内部持有的底层资源、状态和事件订阅将被清理。
void release();
版本信息
从3.5版本开始支持。

高级功能

enableAdvancedFeature

通过键值对启用高级特性。支持的键取决于底层原生推流器能力,可能随版本演进。
void enableAdvancedFeature(String key, Object value);
版本信息
从3.5版本开始支持。
参数说明
参数名
类型
描述
key
String
特性键名。
value
Object
特性值,类型取决于具体键。

数据结构

PusherCode

推流错误码枚举,用于上报推流操作结果和运行时错误。
枚举值
值
说明
ok
0
无错误,操作成功。
errorInvalidParameter
-1
参数非法。
errorInvalidState
-2
当前状态不允许该操作(如正在推流时重复开播、未开播就修改配置)。
errorStartPushRequestFailed
-3
开播请求链路失败(服务端 / 信令 / TRTC)。
errorUpdateConfigRequestFailed
-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
已连接,推流链路正常。

PusherInfoModifyFlag

可通过 updateConfig 更新的字段标志。 每个标志是与底层引擎字段标志对齐的位值,因此取值刻意不连续(跳过无关字段占用的位)。
枚举值
值
说明
liveName
1
更新直播名称。
notice
2
更新公告。
isPublicVisible
32
更新是否公开可见。
coverURL
128
更新封面 URL。
backgroundURL
256
更新背景 URL。
categoryList
512
更新分类列表。
metaData
4096
更新自定义元数据。

PusherListener

推流事件监听器,用于接收推流错误、直播结束、被踢出等一次性事件。通过 addListener / removeListener 注册/移除监听器。

PusherSummary

本次直播的统计数据,直播结束时上报。用于展示观看、互动、礼物等汇总数据。
属性
类型
说明
totalViewers
int
累计观看人数。
totalGiftsSent
int
礼物发送总数。
totalGiftCoins
int
礼物总额。
totalUniqueGiftSenders
int
送礼人数。
totalLikesReceived
int
点赞总数。
totalMessageCount
int
消息总数。
liveDuration
int
直播时长(秒)。

PusherStatistics

推流器运行时统计信息。
属性
类型
说明
videoWidth
int
视频宽度(像素)。
videoHeight
int
视频高度(像素)。
videoFps
int
视频帧率(fps)。
videoBitrate
int
视频码率(bps)。
audioBitrate
int
音频码率(bps)。
rtt
int
网络往返时延(毫秒)。
packetLossRate
int
网络丢包率(百分比)。

PusherState

推流器响应式状态,携带 AtomicPusher 的状态。可通过 state 读取当前值或观察变化。
属性
类型
说明
networkState
ValueListenable<PusherConnectState>
连接状态。
statistics
ValueListenable<PusherStatistics>
推流器运行时统计。
pusherInfo
ValueListenable<PusherInfo>
推流器直播间信息。
totalViewerCount
ValueListenable<int>
总观众数。

PusherInfo

推流器直播间信息。既作为 startPush / updateConfig 的输入参数,也在 state.pusherInfo 中携带引擎返回的直播间状态。
属性
类型
说明
liveID
String
直播 ID。
liveName
String
直播名称。
coverURL
String
封面 URL。
backgroundURL
String
背景 URL。
notice
String
公告。
createTime
int
创建时间。
categoryList
List<int>
分类列表。
isPublicVisible
bool
是否公开可见。
metaData
Map<String, String>
自定义元数据。

帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈