getUserMedia没有正确捕获屏幕

时间:2016-07-09 20:20:47

标签: javascript screenshot electron getusermedia

使用以下代码:

function captureScreen(size) {
    navigator.webkitGetUserMedia({
        audio: false,
        video: {
            mandatory: {
                chromeMediaSource: 'desktop',
                minWidth: size.width,
                maxWidth: size.width,
                minHeight: size.height,
                maxHeight: size.height,
                minFrameRate: 1,
                maxFrameRate: 1
            }
        }
    }, gotStream, getUserMediaError);

    function gotStream(stream) {
        var video = document.createElement('video');
        video.addEventListener('loadedmetadata',function(){
            var canvas = document.createElement('canvas');
            canvas.width = this.videoWidth;
            canvas.height = this.videoHeight;
            var context = canvas.getContext("2d");
            context.drawImage(this, 0, 0);
        },false);
        video.src = URL.createObjectURL(stream);
    }

    function getUserMediaError(e) {
        console.log('getUserMediaError: ' + JSON.stringify(e, null, '---'));
    }
}

给我以下结果:

enter image description here

请注意图像的右侧是如何略微包裹在左侧的?出于某种原因,这种情况发生在我的笔记本电脑(1366x768),朋友的笔记本电脑(1366x768)上,而不是我的桌面(3840x1080双屏)。传递给函数的size参数始终是整个桌面区域的正确和实际大小。即使我硬编码最小和最大宽度/高度,我得到相同的结果。有没有什么办法解决这一问题?我做错了吗?

我正在构建一个需要截取用户桌面截图的Electron应用程序。网页上还没有其他内容,我正在使用重置CSS。

0 个答案:

没有答案