Skip to main content

概述

会议里的共享由 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() 会通知会议、停止发布并停止采集,不抛错。 主持人也可以强制结束当前正在进行的共享:
被强制停止的一方不需要做任何处理,SDK 会自动停流,并上报 roomShareDidStopbyAdmintrue)。

白板共享

白板不产生媒体流,requestShare(shareType: .whiteBoard) 只是把共享状态广播出去:
白板页面地址进入会议后即可读取:
白板的具体交互由你在自己的容器里承载,SDK 只负责同步「现在谁在共享白板」这一状态。

共享事件

屏幕共享的 roomShareDidStart 会在「共享广播」和「远端画面就绪」两个条件都满足后才上报,因此收到这个事件时可以立即渲染共享画面,不需要额外做延时重试。

常见拒绝原因


相关页面