javascript - navigator.mediaDevices.getDisplayMedia 不支持
问题描述
我正在尝试构建一个可以捕获用户桌面的网络应用程序。我发现这个 web api 应该可以完美地完成这项工作,但我似乎无法让它工作。现在,最新版本的 Edge 和 Chrome 70 都应该通过启用标志来支持它,但是如果我正在查看导航器对象,那么在这两个浏览器上,该getDisplayMedia()
功能都不在那里。我也尝试调用该函数,但我收到一条错误消息,指出它不是函数(确认它实际上不在导航器中)。可能是什么问题呢?
提前致谢!
编辑:这是我的 javascript
function na() {
navigator.mediaDevices.getDisplayMedia({
video: {
mandatory: {
chromeMediaSource: 'desktop',
minWidth: 1280,
maxWidth: 1280,
minHeight: 720,
maxHeight: 720
}
}
}).then((stream)=>console.log(stream))
console.log(navigator)
}
na();
解决方案
虽然尚不可用,但 getDisplayMedia 可以填充。此博客文章对此进行了描述。在 Chrome 中,这需要一个扩展,所以如果你刚刚开始开发,最好等到 getDisplayMedia 在 Chrome 中可用(它应该很快在没有标志的 Chrome Canary 中)
请注意,您将旧约束(在 Chrome 中从 navigator.mediaDevices.getUserMedia 获取桌面共享所需)与 navigator.mediaDevices.getDisplayMedia 混合使用,这将不起作用。
推荐阅读
- clang - clang 工具:包含路径
- neural-network - 如何在遗传算法中交叉
- java - 从 SQLite 数据库检索的数据不会在 Android 中绘制,但不会显示错误(使用 GraphView 作为库)
- c# - 如何从asp.net核心网络应用程序向自己发出请求
- http-post - 为什么有些程序员在修改服务器信息的请求中使用 GET 而不是 POST?
- laravel - 使用 try catch 无法捕获 laravel 中的错误
- python-3.x - Python:使用请求或 urllib3 下载带有身份验证的文件
- kotlin - 如何创建基于类型或类对象生成对象的工厂?
- javascript - 在javascript中使用for-each进行数组迭代
- aspnetboilerplate - 它们是如何连接的?Abp、AbpZero、AbpZero 模板