Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript getUserMedia未正确捕获屏幕_Javascript_Screenshot_Electron_Getusermedia - Fatal编程技术网

Javascript getUserMedia未正确捕获屏幕

Javascript getUserMedia未正确捕获屏幕,javascript,screenshot,electron,getusermedia,Javascript,Screenshot,Electron,Getusermedia,使用以下代码: function captureScreen(size) { navigator.webkitGetUserMedia({ audio: false, video: { mandatory: { chromeMediaSource: 'desktop', minWidth: size.width, maxWidth: si

使用以下代码:

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, '---'));
    }
}
给我以下结果:

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


我正在构建一个电子应用程序,它需要拍摄用户桌面的截图。网页上也没有其他内容,我正在使用重置CSS。

左包装的数量是否随屏幕宽度而变化?@raduation相同,左包装为8像素。顺便说一下,我犯了一个错误,我朋友的笔记本电脑与我的笔记本电脑(1366x768)的分辨率相同。你能试着在笔记本电脑上设置不同的屏幕分辨率,看看结果如何?可能在捕获过程中有一个bug,它期望10的倍数。这里完全是猜测,但可能@raduation为1280x720,与左包装的8像素相同。我甚至将最小和最大宽度/高度设置为脚本中的数字,这样我知道它捕获的是准确的大小。这听起来像是一个Chrome错误,不是编程问题。左包装的数量是否随屏幕宽度而变化?@raduation它是相同的,左包装8像素。顺便说一下,我犯了一个错误,我朋友的笔记本电脑与我的笔记本电脑(1366x768)的分辨率相同。你能试着在笔记本电脑上设置不同的屏幕分辨率,看看结果如何?可能在捕获过程中有一个bug,它期望10的倍数。这里完全是猜测,但可能@raduation为1280x720,与左包装的8像素相同。我甚至将最小和最大宽度/高度设置为脚本中的数字,这样我知道它捕获的是准确的大小。这听起来像是Chrome的bug,而不是编程问题。