【问题标题】:How to record desktop screen in angular 2+ application如何在 Angular 2+ 应用程序中记录桌面屏幕
【发布时间】:2021-08-06 19:45:05
【问题描述】:

我需要通过Angular 6 共享桌面屏幕。我已经搜索了合适的包来实现此功能,但找不到。

实际上我发现了很多包,例如RecordRTCAperturescreen-capture-recorder 和其他一些包。其中一些不兼容,一些文档记录不充分,并且代码智能感知不可用。

请告诉我可以与Angular 6 一起使用的最兼容且文档最完整的软件包。我正在开发的平台是Windows

【问题讨论】:

  • 您的意思是准确地共享/记录 DESKTOP 吗?还是您的意思是在网站页面中分享/记录活动? Angular 只能在浏览器中工作。
  • 我想记录桌面,而不仅仅是浏览器/网站。
  • 如果 Angular 只能在浏览器中工作,那么应该如何记录 DESKTOP。
  • @WasiF 独立客户端。
  • @tricheriche 你能详细说明一下,你想说什么吗?抱歉,我听不懂

标签: angular angular6 screen-recording


【解决方案1】:

终于找到了一些可行的解决方案...

@Component({
  selector: 'app-screen',
  template: `<video #video autoplay style="width:360px;"></video>`
})
export class ScreenComponent implements OnInit {

  constructor() { }

  ngOnInit() {
    this.startRecording()
  }

  async startRecording() {
    // navigator.mediaDevices.getDisplayMedia({ video: true })
    // or
    // navigator.getDisplayMedia({ video: true })

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


  @ViewChild('video') videoElementRef: ElementRef
  get videoElement(): HTMLVideoElement {
    return this.videoElementRef.nativeElement
  }

}

由于此功能处于实验阶段,因此启用Experimental Web Platform features 标志来记录用户屏幕。要启用,请按照下图进行操作

注意:它是在chrome v71.x.x 上测试的,请确保您的浏览器是最新的。 另请注意,这在Electron 应用程序中不起作用,因为有人对我投了反对票,他/她可能试图在Electron 应用程序中使用它。 您必须在特定于浏览器的应用程序中使用此解决方案,但现在不能在 Electron 中使用。

【讨论】:

  • 有效吗?我只是想知道您如何获得用户的屏幕视图。
  • 这是为您提供用户屏幕流的代码。 let stream = await navigator.getDisplayMedia({ video: true })
  • 您在截屏时遇到问题?
  • 不,我只是想知道您如何获得屏幕视图。我的意思是你如何在浏览器中看到客户端屏幕。
  • 创建这个组件并观察它是如何工作的。它就像一个魅力。这是一项新功能,因此请在您的浏览器中添加标志,它会为您工作
猜你喜欢
  • 2019-07-08
  • 1970-01-01
  • 2016-10-11
  • 1970-01-01
  • 1970-01-01
  • 2020-04-18
  • 2021-05-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多