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

AtomicPlayer

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

简介

AtomicPlayer 管理低延迟直播和 CDN 流的视频播放。 渲染视图在运行时通过 setView 绑定;视频帧将渲染到给定的 AtomicLiveView 容器中。此绑定与视图的窗口挂载时序解耦:在视图挂载到窗口前调用 setView 是安全的(例如在 UICollectionViewCell 或 RecyclerView 中),绑定将在视图就绪后自动完成。 主要能力:
拉流播放(startPlay / stopPlay)。
渲染视图绑定与旋转模式控制(setView / setRenderRotation)。
频道加入与离开(joinChannel / leaveChannel)。
播放控制(switchStream)。
SEI 消息接收(enableReceiveSeiMessage)。
播放状态与统计(state 实时状态、PlayerStatistics 统计信息)。
事件回调(Swift 通过 playerEvent、Kotlin 通过 addListener 接收 SEI 数据、错误、直播结束、被踢出等事件)。

功能特性

PlayerState:播放状态,包含播放生命周期状态和统计信息。
PlayerEvent:播放器事件回调,包含 SEI 接收、播放错误、直播结束、被踢出等事件类型。

API 列表

数据结构

PlayerCode

播放器错误码,用于上报播放器操作结果和运行时错误。
枚举值
值
说明
OK
0
无错误,操作成功。
ERROR_INVALID_PARAMETER
-1001
参数非法。

PlayerPlaybackStatus

播放器状态,反映当前播放生命周期。 状态机(典型迁移):
startPlay
IDLE ──────────────────▶ LOADING
▲ │
│ play succeeded
stopPlay │
connection lost │
│ ▼
│◀─────────────────────PLAYING ◀────────────────┐
│ │ │
│ │ │
│ buffering recover succeeded
│ │ │
│ ▼ │
└──────────────────────LOADING ─────────────────┘
说明:
IDLE 为初始状态;调用 stopPlay 后也会回到该状态。 缓冲 / 自动恢复过程复用 LOADING,不区分“首次加载”与“重新缓冲”。
枚举值
值
说明
IDLE
0
空闲。初始状态,或播放停止 / 连接断开。
LOADING
1
加载中。正在建立连接或缓冲数据;视频尚未开始或暂时停顿。
PLAYING
2
播放中。链路正常,视频流畅播放。

PlayerRenderRotation

视频渲染旋转角度。
枚举值
值
说明
ROTATION_0
0
不旋转。
ROTATION_90
1
顺时针旋转 90 度。
ROTATION_180
2
顺时针旋转 180 度。
ROTATION_270
3
顺时针旋转 270 度。

PlayerListener

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

PlayerStatistics

播放器运行时统计信息,包含活跃播放器的实时运行指标。
属性
类型
说明
videoWidth
Int
视频宽度(像素)。
videoHeight
Int
视频高度(像素)。
videoFps
Int
视频帧率(fps)。
videoBitrate
Int
视频码率(bps)。
audioBitrate
Int
音频码率(bps)。

PlayerState

播放器响应式状态,携带 AtomicPlayer 的状态。可通过 state 读取当前值或观察变化。
属性
类型
说明
playbackStatus
播放状态,反映当前播放生命周期。
statistics
播放运行时统计,由 SDK 周期性上报。
totalViewerCount
Int
总观众数。