首页 > 解决方案 > 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();

标签: javascriptwebrtcget-display-media

解决方案


虽然尚不可用,但 getDisplayMedia 可以填充。此博客文章对此进行了描述。在 Chrome 中,这需要一个扩展,所以如果你刚刚开始开发,最好等到 getDisplayMedia 在 Chrome 中可用(它应该很快在没有标志的 Chrome Canary 中)

请注意,您将旧约束(在 Chrome 中从 navigator.mediaDevices.getUserMedia 获取桌面共享所需)与 navigator.mediaDevices.getDisplayMedia 混合使用,这将不起作用。


推荐阅读