ScreenShareStore 提供了一套完整的屏幕分享 API,包括移动端整屏分享,以及桌面端(Win/Mac)的屏幕 / 窗口源枚举与指定目标分享。ScreenShareStore 实例。不要尝试直接初始化。属性名 | 类型 | 描述 |
screenStatus | 屏幕分享状态。 |
函数名 | 描述 |
单例对象。 | |
开启屏幕分享。 | |
枚举可分享的屏幕 / 窗口(仅桌面端)。 | |
停止屏幕分享。 | |
重置为默认状态。 |
void startScreenShare({String iOSAppGroup = '', String? sourceId, ShareConfig? property});
参数名 | 类型 | 描述 |
iOSAppGroup | String | 默认值为 '',Android 平台保持默认即可(该参数在 Android 上被忽略)。iOS 上:该值必须与 Broadcast Upload Extension 中配置的 App Group 字符串保持一致,用于宿主 App 与 Extension 之间共享数据,格式形如 group.<反向域名>。允许传入空字符串,但屏幕共享的稳定性不保证,建议正确配置。 |
sourceId | String? | 仅桌面端(Win/Mac)。要分享的屏幕 / 窗口的运行时句柄,取自 getShareSources 返回的 ShareSource.sourceId。为 null 时表示不指定具体目标。该句柄是易失的,不可持久化;只能在句柄存活期间回传。 |
property | 仅桌面端(Win/Mac)。采集配置,参见 ShareConfig。为 null 时使用默认配置。 |
Future<List<ShareSource>> getShareSources({required Size thumbnailSize, required Size iconSize});
参数名 | 类型 | 描述 |
thumbnailSize | Size | 每个源期望的缩略图尺寸。 |
iconSize | Size | 每个源期望的图标尺寸。 |
void stopScreenShare();
void reset();
枚举值 | 值 | 说明 |
window | 0 | 应用窗口。 |
screen | 1 | 物理显示器 / 整块屏幕。 |
属性 | 类型 | 说明 |
type | 源类型。 | |
sourceId | String | 字符串化的运行时句柄(HWND / CGWindowID)。不可持久化。 |
sourceName | String | 枚举时刻的源名称。可能与当前窗口标题存在偏差。 |
isMinimizeWindow | bool | 窗口是否最小化。可用于在源选择器 UI 中隐藏或置灰最小化窗口(最小化窗口无法有效采集)。 |
thumbnail | ImageProvider? | 缩略图,未请求或不可用时为 null。 |
icon | ImageProvider? | 图标,未请求或不可用时为 null。 |
属性 | 类型 | 说明 |
enableCaptureMouse | bool | 是否采集鼠标光标。默认值为 true。 |
属性 | 类型 | 说明 |
screenStatus | 屏幕分享状态。 |
// 获取单例实例final store = ScreenShareStore.shared;// 订阅状态变化store.state.screenStatus.addListener(() {print('屏幕分享状态: ${store.state.screenStatus.value}');});// 移动端:开启屏幕分享store.startScreenShare(iOSAppGroup: 'group.com.example.app');// 桌面端:枚举源并指定目标分享final sources = await store.getShareSources(thumbnailSize: const Size(320, 180),iconSize: const Size(48, 48),);if (sources.isNotEmpty) {store.startScreenShare(sourceId: sources.first.sourceId);}// 停止屏幕分享store.stopScreenShare();
文档反馈