Skip to main content

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()

屏幕音频

  • audioTrack
  • setAudioTrack(_:)
  • getAudioTrack()

LocalAudioTrack

适用于自定义音频输入:
  • mute()
  • unmute()
  • pushAudioBuffer(_:)
这类轨道通常不需要 startCapture(),而是由业务层持续注入 PCM 数据。

LocalVideoTrack

适用于自定义视频输入:
  • addRenderer(_:)
  • removeRenderer(_:)
  • removeAllRenderers()
  • pushFrame(_:rotation:timestampNs:)
如果你有外部渲染管线、Canvas、屏幕编码器或 AI 处理链路,这个入口更合适。

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(_:) 绑定。