我正在尝试构建一个可以捕获用户桌面的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();
答案 0 :(得分:5)
虽然尚不可用,但可以将getDisplayMedia进行多填充。描述in this blog post。在Chrome中,这需要扩展,因此,如果您现在才开始开发,最好等到getDisplayMedia在Chrome中可用(它应该很快在Chrome Canary中没有标志)
请注意,您正在将旧的约束(从Chrome中的navigator.mediaDevices.getUserMedia获得桌面共享所需的约束)与无法工作的navigator.mediaDevices.getDisplayMedia混合在一起。