Google Meet 如何让您从另一个选项卡进行屏幕共享?

You*_*mar 4 javascript webrtc get-display-media

在Google Meet 中,如果您单击“立即演示”,然后单击“Chrome 标签页”,它会弹出一个窗口,让您可以从另一个标签页进行共享。这与标准的Screen Capture API不同,就好像您只是运行

navigator.mediaDevices.getDisplayMedia({
    video: true,
    audio: true,
})
Run Code Online (Sandbox Code Playgroud)

您会看到一个窗口,您可以在其中选择共享整个屏幕、共享窗口或共享选项卡。我想将其限制为仅选项卡。我曾尝试应用约束,如:

video: { displaySurface: 'browser' }
Run Code Online (Sandbox Code Playgroud)

或者

video: { displaySurface: { exact: 'browser' } }
Run Code Online (Sandbox Code Playgroud)

然而,规范说这行不通,实际上也行不通。但如果是这样,那么 Google Meet 是如何做到的呢?

Phi*_*cke 9

Google Meet 使用较旧的扩展 API 进行屏幕共享。此 API允许限制源类型。它仍然可用,但需要一个扩展程序(Google meet 提供了一个预装的扩展程序)。

标准 getDisplayMedia 不允许限制 displaySurface 的类型。

  • 感谢您的链接!似乎它也仅适用于 *.google.com 域。这不是超级反竞争吗?谷歌是如何逃脱这一惩罚的呢? (11认同)
  • 它是 - [此处](https://source.chromium.org/chromium/chromium/src/+/master:chrome/browser/resources/hangout_services/thunk.js?q=thunk.js) (4认同)