navigator.getDisplayMedia 不是 angular 中的函数 6

navigator.getDisplayMedia is not a function in angular 6

我正在尝试共享用户屏幕并需要使用 getDisplayMedia 但在项目编译期间出现错误

Property 'getDisplayMedia' does not exist on type 'Navigator'

这是代码

let stream = await navigator.getDisplayMedia({ video: true })

包版本如

  1. 节点 v10.14.2
  2. NPM v6.5.0
  3. @angular/cli v6.1.5

根据documentation你需要使用navigator.mediaDevices.getDisplayMedia

您看到的错误是因为 navigator 没有可用的 属性 名为 getDisplayMedia

getDisplayMedianavigator 中不再可用。它已移至 navigator.mediaDevices.getDisplayMedia

Source

还要确保安装了 navigator 的类型。

Angular 6+

let stream = await navigator.getDisplayMedia({ video: true })
console.log(stream)

注意:要在Angular 6+中录屏,需要在chrome://flags中启用experimental web platform features直到正常启动,因为它处于开发和测试模式

详情见下图:

如果您在 angular 中,则不会使用导航器或 mediaDevices 获取 DisplayMedia。它在 getDisplayMedia 上显示错误。所以你可以做些什么来消除错误。

声明

nav: any;

那么你必须在哪里使用 getDisplayMedia()

this.nav = navigator;

stream = this.nav.mediaDevices.getDisplayMedia(your content)