Channel
Channel 表示一次已建立的频道会话,是发布、订阅、消息和用户状态的核心入口。
属性
getUsers()
获取当前频道内所有用户信息。
[String: UserInfo]
getUser(_:)
按 uid 获取用户对象。
User?
publishLocalTrack(_:)
发布本地音频或视频轨道。
publishLocalTrack(_ track: LocalAudioTrack, options: AudioPublishOptions? = nil)publishLocalTrack(_ track: LocalVideoTrack, options: VideoPublishOptions? = nil)
- 音频轨道会走内部混音发送模型
LocalScreenTrack如果带有屏幕音频,会自动一并发布音频部分
unpublishLocalTrack(_:)
取消发布本地音频或视频轨道。
stopCapture() 释放采集资源。
subscribeRemoteAudioTrack(uid:trackId:)
订阅远端音频轨道。
subscribeRemoteVideoTrack(uid:trackId:)
订阅远端视频轨道。
unsubscribeRemoteTrack(_:debounceMs:)
取消订阅远端轨道。
getRemoteTrack(uid:trackId:)
按用户和轨道 ID 取回远端轨道对象。
Track?
getRemoteTrackByDesc(uid:desc:)
按 desc 获取远端轨道。
Track 基类
所有轨道都继承自Track,共享以下核心属性:
通用方法:
getInfo()
LocalMicTrack
采集控制
startCapture(options:)stopCapture()restartCapture()
用户控制
mute()unmute()changeDeviceId(_:)
LocalCameraTrack
采集控制
startCapture(options:)stopCapture()restartCapture()
用户控制
mute()unmute()changeDeviceId(_:)switchCamera()
渲染相关
addRenderer(_:)removeRenderer(_:)removeAllRenderers()
LocalScreenTrack
采集控制
startCapture(options:)stopCapture()restartCapture()
用户控制
mute()unmute()
屏幕音频
audioTracksetAudioTrack(_:)getAudioTrack()
LocalAudioTrack
适用于自定义音频输入:mute()unmute()pushAudioBuffer(_:)
startCapture(),而是由业务层持续注入 PCM 数据。
LocalVideoTrack
适用于自定义视频输入:addRenderer(_:)removeRenderer(_:)removeAllRenderers()pushFrame(_:rotation:timestampNs:)
RemoteAudioTrack
播放控制
startPlay()stopPlay()isPlaying
PCM 数据回调
add(audioRenderer:)remove(audioRenderer:)
AudioRenderer 回调会拿到 AVAudioPCMBuffer,适合做语音转写、录制或二次分析。
RemoteVideoTrack
渲染控制
addRenderer(_:)removeRenderer(_:)removeAllRenderers()
SRTCVideoView(track:) 或 SRTCVideoRenderer 展示。
渲染组件
SRTCVideoView
SwiftUI 场景优先使用:
VideoView
UIKit / AppKit 场景下使用 bind(track:) / unbind() 管理绑定关系。
SRTCVideoRenderer
更底层的渲染视图,由轨道显式调用 addRenderer(_:) 绑定。