屏幕共享

浏览器屏幕共享完整指南:全屏、横屏、缩放和刷新后的边界

从选择标签页或屏幕、共享状态、远端全屏与横屏观看、双指缩放拖动,到网络切换、观看方刷新、发送方停止和权限隐私,梳理一场可用的 WebRTC 屏幕共享。

浏览器屏幕共享的基础演示很简单:调用一次权限窗口,把视频轨道发给对方。真正使用时,问题都在演示之后。手机上看电脑屏幕字太小,想横过来;需要放大代码的一角并双指拖动;观看方刷新后,发送方还一直显示“正在共享”;网络重连后,旧画面冻结,却没有结束提示。

一场好用的共享要同时照顾发送方的控制感、观看方的操作和双方状态一致。清晰度只是其中一部分。

先选对共享对象

浏览器的屏幕选择器通常提供标签页、窗口和整个屏幕。只演示一个网页时,分享标签页泄露最少,也常能获得更好的浏览器优化;切换多个应用才需要窗口或屏幕。共享整个屏幕前,应关闭通知预览、密码管理器弹窗和包含私人信息的窗口。

网站不能替用户记住并自动重新选择捕获源。每次新的屏幕捕获都应由用户动作触发。这意味着底层设备连接自动恢复后,产品可以恢复“双方在线”,却不能偷偷恢复“发送方正在共享”。

发送方必须一直知道自己在分享

共享期间保留明显的状态条,显示共享对象、观看人数、持续时间和停止按钮。浏览器自身也会显示捕获指示,但产品内状态不能依赖用户找到浏览器的小图标。切换页面、收起侧栏后,停止入口仍要容易触达。

当系统工具栏停止共享、捕获轨道触发 ended、权限被撤销或源窗口关闭时,应用立即广播终止原因并清理本地状态。不能等观看方下一次心跳才发现,更不能让“正在共享”留到下次刷新。

观看方需要的不只是一个 video

桌面端至少要有全屏、适应窗口、原始比例、音量或静音、画质状态和退出观看。移动端还需要横屏提示、双指缩放和拖动。缩放应围绕手指中点,并限制最小和最大倍数;拖动边界要防止画面彻底滑出视口;双击可在适应与放大之间切换。

手势层不能阻断退出和全屏按钮,也不能让页面本身跟着滚动。横屏只是观看布局,不应尝试强制旋转整个系统;支持 Screen Orientation API 时可在用户进入全屏后申请方向,否则给出轻量提示即可。

观看方刷新后,双方该发生什么

B 刷新页面时,原来的观看会话和媒体接收器已经结束。A 应在短暂宽限期内收到观看方离线或会话关闭,观看人数减一;若没有其他观看者,应把共享任务置为“无人观看”,并询问继续等待还是停止,而不是永远显示活跃。

B 与可信设备重连后,可以看到 A 仍有一条可加入的共享邀请,再主动恢复观看。这里可以自动恢复信令和 WebRTC,却不该在 B 未进入观看界面时后台播放;A 也不应把旧接收器当成仍在线。每次观看加入都带新的 viewer session ID,旧会话迟到消息直接忽略。

网络变化与画质策略

屏幕内容与摄像头不同。文字和界面需要较高清晰度,却常常不需要 60 帧。静态文档可优先分辨率并降低帧率;快速动画再提高帧率。拥塞时逐级降低帧率、分辨率或码率,并在状态区展示“网络受限”,不要只让画面越来越糊。

TURN 中继对屏幕共享可以工作得很好,因为媒体栈自带成熟的拥塞控制。这也能成为文件传输排查的对照:同一中继上屏幕稳定而文件极慢,未必是服务器带宽。网络从 Wi-Fi 切换后,画面短暂停顿可接受,但重连超时必须进入明确的“已中断”状态。

共享内容的隐私边界

默认不采集共享画面截图,也不把标题、窗口名称或屏幕内容写入分析。埋点只需记录请求、用户选择源类型、开始成功、结束原因、观看人数区间和质量降级次数。任何录制都必须是另一个明确功能,并让双方持续可见。

分享带系统音频的标签页时,应单独显示音频状态。远端不能控制发送方鼠标或键盘,除非产品另有经过双方同意的远控协议;“看屏幕”不能悄悄扩大成“控制电脑”。

应该逐一跑通的边界

测试选择标签页、窗口、屏幕和取消选择;共享开始后发送方主动停止、关闭源、撤销权限、刷新;观看方加入、退出、刷新、断网、切后台;双方同时刷新;直连转中继;移动端竖屏、横屏、双指缩放、拖动边界、全屏与 Esc;多观看方中一人离开;最后一名观看者消失。

每一步都检查 A 与 B 的状态、轨道是否释放、通知是否只出现一次、旧会话是否会复活。完整性不是“对方看到了画面”,而是所有结束路径都能让双方回到一致且可理解的状态。

用 uCopy 共享屏幕

连接设备后,在工作区选择屏幕共享并挑选源。发送方可随时停止;观看方可以进入全屏,并在移动设备上使用适应、缩放和横屏布局。若刷新或切换网络,留意状态从恢复中回到观看,或清楚地结束。

屏幕共享是一项持续权限,不是连接成功后的附赠能力。每次开始都清楚,每次停止都彻底,才会让人愿意放心分享真正重要的内容。

把方法变成一次真实连接

打开 uCopy,让两台设备在浏览器里安全连接并开始传输。

开始免费使用