概述
会议里的共享由ShareType 区分两类:
同一时刻一个会议只有一位成员在共享,共享者是谁可以读
RoomInfo.shareUid,当前共享类型读 RoomInfo.shareState。
开始共享
默认采集
requestShare(shareType: .screen, preset: .h1080p),macOS 上采集主显示器。preset 取值来自 SRTC 的 ScreenPreset:.h720p、.h1080p(默认)。
macOS:让用户选择显示器或窗口
macOS 12.3 及以上支持指定采集源。业务层先枚举,展示选择 UI,再把用户选中的源传进来:source 接受 DisplaySource(显示器)或 WindowSource(应用窗口)。
SDK 负责「发现可共享的源」和「开始采集」,「怎么把源列表展示给用户」由你决定,这样 SDK 不绑定任何 UI 方案。
本地预览
如果你在 UIKit / AppKit 下需要本地预览共享画面,可以传入view;SwiftUI 下不传,改用 SRTCVideoView(track: meeting.screenTrack)。
停止共享
stopShare() 会通知会议、停止发布并停止采集,不抛错。
主持人也可以强制结束当前正在进行的共享:
roomShareDidStop(byAdmin 为 true)。
白板共享
白板不产生媒体流,requestShare(shareType: .whiteBoard) 只是把共享状态广播出去:
共享事件
roomShareDidStart 会在「共享广播」和「远端画面就绪」两个条件都满足后才上报,因此收到这个事件时可以立即渲染共享画面,不需要额外做延时重试。