Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/414.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/85.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_Html_Video_Getusermedia - Fatal编程技术网

Javascript 指示getUserMedia使用最佳可用相机分辨率

Javascript 指示getUserMedia使用最佳可用相机分辨率,javascript,html,video,getusermedia,Javascript,Html,Video,Getusermedia,我正在使用getUserMedia功能从网络摄像头录制视频。一切都很好,除了在我刚刚为约束指定video:true时,它仅以640x480分辨率录制 如果我将约束设置如下,我现在可以在笔记本电脑上获得更好的录制质量: var mediaConstraints = { audio: true, video: { width: { min: 1280 }, height: { min: 720 } } }; 但如果另一台设备的性能优于1280

我正在使用getUserMedia功能从网络摄像头录制视频。一切都很好,除了在我刚刚为约束指定video:true时,它仅以640x480分辨率录制

如果我将约束设置如下,我现在可以在笔记本电脑上获得更好的录制质量:

var mediaConstraints = {
    audio: true,
    video: {
        width: { min: 1280 },
        height: { min: 720 }
    }
};
但如果另一台设备的性能优于1280x720,或者甚至更低,该怎么办

我试着把最小值设得很低,最大值设得很高;但它只是默认为640x480,或者根本没有给出任何信息。我还尝试设置所需的大小,但正如预期的那样——我最终得到了该值是多少。如果我将desired设置为非常高(因此它会选择最接近的可用值),那么我将一无所获


所以问题是,如何设置约束以获得相机可以提供的最大分辨率?

请注意,
min
表示“最小允许值”,并且由于大多数浏览器默认为640x480,低于该值的值不会有多大影响

根据规格,只要要求高分辨率,你就应该得到相机能产生的最接近的分辨率。例如:

var mediaConstraints = {
    audio: true,
    video: { width: 2880, height: 1800 }
};
这在Firefox中有效,在Edge中也可能有效(我还没有尝试过)

请参阅,以了解有关此功能为何有效的更多信息

不幸的是,Chrome(尽管他们正在开发)仍然依赖于polyfill的标准约束语法,而polyfill也有一些限制,就像您在这里遇到的那样

如果您正在使用,您可以在Chrome的web控制台中查看它本机使用的旧的非标准语法。使用该语法可以构造一系列连续更宽的最小范围,并使算法以这种方式选择更高的值