AtomicPlayer 管理低延迟直播和 CDN 流的视频播放。 渲染视图在运行时通过 setView 绑定;视频帧将渲染到给定的 AtomicLiveView 容器中。此绑定与视图的窗口挂载时序解耦:在视图挂载到窗口前调用 setView 是安全的(例如在 UICollectionViewCell 或 RecyclerView 中),绑定将在视图就绪后自动完成。 主要能力:startPlay / stopPlay)。setView / setRenderRotation)。joinChannel / leaveChannel)。switchStream)。enableReceiveSeiMessage)。state 实时状态、PlayerStatistics 统计信息)。playerEvent、Kotlin 通过 addListener 接收 SEI 数据、错误、直播结束、被踢出等事件)。属性名 | 类型 | 描述 |
playbackStatus | 播放状态,反映当前播放生命周期。 | |
statistics | 播放运行时统计,由 SDK 周期性上报。 | |
totalViewerCount | Int | 总观众数。 |
函数名 | 描述 |
播放器事件发布者。 | |
设置渲染视图。 | |
设置渲染旋转角度。 | |
截取当前视频帧。 | |
开始播放指定 URL 的远端流。 | |
停止播放。 | |
无缝切换到新的流地址。 | |
设置播放音量。 | |
加入频道。 | |
离开频道。 | |
启用或禁用 SEI 消息接收。 | |
通过键值对启用高级特性。 |
AtomicLiveView 容器中。此绑定与视图挂载窗口的时机解耦:可在视图挂载窗口前调用(如 UICollectionView cell 或 RecyclerView 中),视图就绪后自动完成绑定。public func setView(_ view: AtomicLiveView) { impl.setView(view) }
参数名 | 类型 | 描述 |
view | 渲染视图容器。 |
public func setRenderRotation(_ rotation: PlayerRenderRotation) { impl.setRenderRotation(rotation) }
参数名 | 类型 | 描述 |
rotation | 渲染旋转角度。 |
public func snapshot(completion: ((UIImage?) -> Void)? = nil) { impl.snapshot(completion: completion) }
参数名 | 类型 | 描述 |
completion | ((UIImage?) -> Void)? | 截图结果回调。截图失败时图片为 nil。 |
public func startPlay(url: String) { impl.startPlay(url: url) }
参数名 | 类型 | 描述 |
url | String | 流地址。 |
public func stopPlay() { impl.stopPlay() }
public func switchStream(url: String, completion: CompletionClosure? = nil) { impl.switchStream(url: url, completion: completion) }
参数名 | 类型 | 描述 |
url | String | 新流地址。 |
completion | 切换结果回调(成功/失败状态)。 |
public func setVolume(_ volume: Int) { impl.setVolume(volume) }
参数名 | 类型 | 描述 |
volume | Int | 音量等级,取值范围 0 ~ 100;超出范围的值会被截断。 |
public func joinChannel(liveID: String, completion: CompletionClosure?) { impl.joinChannel(liveID: liveID, completion: completion) }
参数名 | 类型 | 描述 |
liveID | String | 直播 ID。 |
completion | 完成回调。 |
public func leaveChannel() { impl.leaveChannel() }
PlayerEvent.seiReceived 事件投递。public func enableReceiveSeiMessage(enable: Bool, payloadType: Int) { impl.enableReceiveSeiMessage(enable: enable, payloadType: payloadType) }
参数名 | 类型 | 描述 |
enable | Bool | 是否启用 SEI 消息接收。 |
payloadType | Int | 要过滤的 SEI payload 类型。常见值:243(自定义布局)、100(音量布局)、245(ASR 消息)。 |
public func enableAdvancedFeature(key: String, value: Any) { impl.enableAdvancedFeature(key: key, value: value) }
参数名 | 类型 | 描述 |
key | String | 特性键。 |
value | Any | 特性值,类型取决于具体键。 |
枚举值 | 值 | 说明 |
OK | 0 | 无错误,操作成功。 |
ERROR_INVALID_PARAMETER | -1001 | 参数非法。 |
startPlayIDLE ──────────────────▶ LOADING▲ ││ play succeededstopPlay │connection lost ││ ▼│◀─────────────────────PLAYING ◀────────────────┐│ │ ││ │ ││ buffering recover succeeded│ │ ││ ▼ │└──────────────────────LOADING ─────────────────┘
IDLE 为初始状态;调用 stopPlay 后也会回到该状态。 缓冲 / 自动恢复过程复用 LOADING,不区分“首次加载”与“重新缓冲”。枚举值 | 值 | 说明 |
IDLE | 0 | 空闲。初始状态,或播放停止 / 连接断开。 |
LOADING | 1 | 加载中。正在建立连接或缓冲数据;视频尚未开始或暂时停顿。 |
PLAYING | 2 | 播放中。链路正常,视频流畅播放。 |
枚举值 | 值 | 说明 |
ROTATION_0 | 0 | 不旋转。 |
ROTATION_90 | 1 | 顺时针旋转 90 度。 |
ROTATION_180 | 2 | 顺时针旋转 180 度。 |
ROTATION_270 | 3 | 顺时针旋转 270 度。 |
addListener / removeListener 注册/移除监听器。属性 | 类型 | 说明 |
videoWidth | Int | 视频宽度(像素)。 |
videoHeight | Int | 视频高度(像素)。 |
videoFps | Int | 视频帧率(fps)。 |
videoBitrate | Int | 视频码率(bps)。 |
audioBitrate | Int | 音频码率(bps)。 |
state 读取当前值或观察变化。属性 | 类型 | 说明 |
playbackStatus | 播放状态,反映当前播放生命周期。 | |
statistics | 播放运行时统计,由 SDK 周期性上报。 | |
totalViewerCount | Int | 总观众数。 |
文档反馈