Skip to main content
本页接口都挂在 SMeeting 上。使用说明见 媒体控制视频渲染 NativeVideoView 是 SDK 为渲染视图定义的别名,实际类型是 SRTC 的 SRTCVideoRenderer

摄像头

requestOpenCamera(view:deviceId:preset:byAdmin:adminUid:)

打开摄像头:向会议申请 → 开始采集 → 发布。
返回值: LocalCameraTrack(可忽略,也可随时读 meeting.cameraTrack 可能抛出:
  • SMeetingError.unauthorized —— 房间全体禁画且禁止自我解除,且你不是主持人 / 联席主持人
  • SMeetingError.apiError(code:message:)
  • 采集或发布失败时的底层错误(此时 SDK 已自动回滚,无需你再调 closeCamera()
已经打开时重复调用不会重复起流;如果传入了不同的 deviceId,会切到目标设备。

closeCamera()

返回值: 无,不抛错。会取消发布、移除渲染视图、停止采集,并上报 userCameraStateDidChange

switchCamera(deviceId:)

返回值: 可能抛出: SMeetingError.deviceError(_:) —— 摄像头尚未开启

麦克风

requestOpenMic(deviceId:preset:byAdmin:adminUid:)

返回值: 可能抛出:
  • SMeetingError.unauthorized —— 房间全体静音且禁止自我解除,且你不是主持人 / 联席主持人
  • SMeetingError.apiError(code:message:)
  • 采集或发布失败时的底层错误(SDK 会自动回滚)

closeMic()

返回值: 无,不抛错。会取消发布、停止采集,并上报 userMicStateDidChange

屏幕共享

requestShare(shareType:preset:view:byAdmin:adminUid:)

返回值: 可能抛出:
  • SMeetingError.unauthorized —— 房间禁共享且你不是主持人 / 联席主持人
  • SMeetingError.internalError(_:) —— 本端已在共享
  • SMeetingError.apiError(code:message:)
  • 采集失败(例如用户拒绝屏幕录制授权)时的底层错误
shareType.whiteBoard 时不创建媒体流,只广播共享状态并触发 roomShareDidStart

requestShare(source:preset:view:byAdmin:adminUid:)

指定采集源的重载,仅 macOS 12.3 及以上
返回值: 可能抛出: 同上一个重载。

stopShare()

返回值: 无,不抛错。

远端视频

subscribeRemoteVideoTrack(uid:trackDesc:)

订阅远端视频轨道,不绑定渲染视图。
返回值: RemoteVideoTrack 可能抛出:
  • SMeetingError.notInMeeting
  • SMeetingError.internalError(_:) —— 该成员没有这一路轨道

unsubscribeRemoteVideoTrack(uid:trackDesc:)

无条件取消订阅,不考虑是否还有渲染视图在用。 返回值: 可能抛出: SMeetingError.notInMeeting。轨道不存在时静默返回。

startPlayRemoteVideo(view:uid:trackDesc:)

订阅并把画面绑定到传入的渲染视图,适合 UIKit / AppKit。 返回值: RemoteVideoTrack 可能抛出:subscribeRemoteVideoTrack(uid:trackDesc:)

stopPlayRemoteVideo(view:uid:trackDesc:)

解绑渲染视图。只有当这路轨道上已经没有任何渲染视图时才会真正取消订阅。 返回值: 可能抛出: SMeetingError.notInMeeting

远端音频

进入会议时远端音频已自动订阅,以下接口用于需要精细控制的场景。

subscribeRemoteAudioTrack(uid:trackDesc:)

返回值: 可能抛出: SMeetingError.notInMeetingSMeetingError.internalError(_:)

unsubscribeRemoteAudioTrack(uid:trackDesc:)

参数同上。轨道不存在时静默返回。

toggleRemoteAudioMute(_:)

远端音频播放总开关,只切播放不改订阅关系。
返回值: 无,不抛错。

合屏画面(MCU)

startPlayRemoteVideoMcu(view:uid:)

订阅并播放服务端合成画面。需要服务端已配置合屏任务。 返回值: RemoteVideoTrack 可能抛出: SMeetingError.notInMeetingSMeetingError.internalError(_:)(未找到合成画面轨道)

stopPlayRemoteVideoMcu(view:)

返回值:

相关页面