不支持navigator.mediaDevices.getDisplayMedia

时间:2018-11-24 22:52:13

标签: javascript webrtc get-display-media

我正在尝试构建一个可以捕获用户桌面的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();

1 个答案:

答案 0 :(得分:5)

虽然尚不可用,但可以将getDisplayMedia进行多填充。描述in this blog post。在Chrome中,这需要扩展,因此,如果您现在才开始开发,最好等到getDisplayMedia在Chrome中可用(它应该很快在Chrome Canary中没有标志)

请注意,您正在将旧的约束(从Chrome中的navigator.mediaDevices.getUserMedia获得桌面共享所需的约束)与无法工作的navigator.mediaDevices.getDisplayMedia混合在一起。