问题标签 [get-display-media]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
301 浏览

javascript - chrome上的getDisplayMedia拆分选择窗口

我注意到google hangout meet提供了选择是否要共享整个监视器、应用程序或仅共享浏览器选项卡的功能,它不是一个菜单,而是分为三个菜单。我尝试应用类似的约束displaySurface: "monitor",但它不起作用,并且仍然在一个窗口中提供了所有选择。我想知道如何在 chrome 中实现与 google hangouts 相同的功能,因为根据MDN web docs

注意:与媒体 API 中大多数约束的使用不同,这里它仅用于定义流配置,而不是过滤可用的选项。

这似乎与meet.google.com的实现有悖常理,除非有一种方法可以不受限制地实现这一点

0 投票
0 回答
312 浏览

javascript - 什么是浏览器屏幕捕获 API 中的逻辑显示表面?

我想知道逻辑显示表面实际上是什么?

在 MDN 文档中:
A logical display surface is one which is in part or completely obscured, either by being overlapped by another object to some extent, or by being entirely hidden or offscreen. How these are handled by the Screen Capture API varies. Generally, the browser will provide an image which obscures the hidden portion of the logical display surface in some way, such as by blurring or replacing with a color or pattern. This is done for security reasons, as the content that cannot be seen by the user may contain data which they do not want to share.

但是当我添加logicalSurface: true到视频常量中时,没有任何改变。当我将其设置为 时logicalSurface: false,也没有任何变化。每个人都可以给我一个真实的例子吗?

谢谢你。

0 投票
1 回答
67 浏览

javascript - GetDisplayMedia - 调整共享应用程序窗口大小时是否有要监听的事件

当通过 chrome getDisplayMedia 共享的应用程序调整大小时,是否有要监听的事件?

例如,如果共享文本编辑器应用程序,然后在共享时调整大小,则视频轨道也会调整大小。但是我没有找到一个事件处理程序来监听大小的变化。有要听的活动吗?

0 投票
1 回答
524 浏览

safari - Hangouts 如何在 Safari 上获取桌面捕获?

因此,如果我们看一下:https ://developer.mozilla.org/en-US/docs/Web/API/Screen_Capture_API

的状态getDisplayMedia- 用于获取桌面流的函数 - 表明它目前在 safari 12 中不受支持。从getDisplayMedia在 Safari 上的控制台中调用告诉我们它不可用这一事实很明显。

那么 Google Hangouts 是如何在 safari 中获得桌面份额的呢?由于环聊在浏览器中运行,据我所知,它必须使用 JS API 来获取屏幕。

任何提示或帮助将不胜感激。

谢谢

0 投票
0 回答
754 浏览

javascript - 在 Web 应用程序中同时录制屏幕和预览摄像头在 Chrome/macOS 设置上效果不佳

目标是在 html 视频元素中预览计算机网络摄像头的流,同时记录音频和显示另一个视频的 Chrome 选项卡,并使用 MediaRecorder API、navigator.mediaDevices.getDisplayMedia 和 navigator.mediaDevice.getUserMedia 进行预览.

该实现使用 Chrome 和 Ubuntu/Windows 设置运行良好,但在 macOS 上运行时变得滞后。下面提供了 Javascript 代码。关于为什么实施在 macOS 上特别糟糕的任何想法?

我尝试将编解码器从 vp9 更改为 vp8,将帧速率降低到 24,并且分辨率已经降低。如果我降低质量会变差。

我尝试在 macOS 上降低流和录制的质量而没有任何性能提升。

0 投票
0 回答
126 浏览

screensharing - getDisplayMedia(获取可用选项列表)

在调用 getDisplayMedia 时,我正在尝试获取在本机 chrome 拾取屏幕上显示的可用流源列表。 在此处输入图像描述

是否有返回一系列可用选项的回调,我想自定义这个本机拾取屏幕?先感谢您

0 投票
0 回答
53 浏览

google-chrome - chrome中requestfullscreen和getDisplayMedia的交互

使用 chrome,当 (1) 选择一个选项卡进行捕获,以及 (2) 该选项卡上的一个元素请求全屏时,似乎getDisplayMediarequestFullscreen不能很好地一起播放。此时 chrome 将改为显示这个奇怪的窗口版本的选项卡。

有没有人遇到过这个问题或者有什么办法解决这个问题?您可以使用这个粗略的小提琴来重现。

抱歉,如果以前有人问过这个问题,但我找不到。

0 投票
3 回答
1488 浏览

javascript - 如何从 Screen Capture Web API 存储/下载录制文件?

我正在使用Screen Capture API并尝试将最终捕获保存到视频文件(WebM、MP4 等)。我有这两个 JavaScript 函数:

开始捕获时,视频可以正常显示,但我不确定如何实际存储其内容。videoElem是 a Promise,它解析为 a MediaStreamtracks是一个MediaStreamTrack对象数组。这是我第一次做任何类型的 Web 开发,所以我有点迷茫!

0 投票
1 回答
254 浏览

javascript - 如何在开始录制 MediaStream 之前添加延迟?

我正在尝试构建一个简单的屏幕录像机,并且在 MDN 文档的帮助下,我具有以下两个功能:

我想在数据开始记录之前添加一个延迟(比如 3 秒)。我试着在不同的地方玩,setTimeout()但一直Cannot GET /[object%20MediaStream]出错。任何帮助都是极好的!

0 投票
1 回答
300 浏览

canvas - 使用画布处理 getDispaymedia 流时,无法以原始分辨率传输。- 网络RTC

如果我只是发送 getDisplayMedia 流,则按原样传输分辨率。

但是,当我使用 canvas.captureMedia 发送它时,分辨率首先以较低的质量传输并变得更大。

有没有办法像发送 getDisplayMedia 流一样以该分辨率发送它?

case1 : 发送 getDisplayMedia 流 在此处输入图像描述

case2 : 发送画布捕获 MediaStream 在此处输入图像描述