繁体   English   中英

Javascript navigator.mediaDevices.getUserMedia获取源的宽度和高度

[英]Javascript navigator.mediaDevices.getUserMedia get width and height at source

我正在使用此代码 ,但是当它获取源时,高度和宽度由下面的代码块中的约束设置,但是我想获取视频的实际大小。

  navigator.mediaDevices.getUserMedia({
    audio: false,
    video: {
      mandatory: {
        chromeMediaSource: 'desktop',
        chromeMediaSourceId: desktop_id,
        minWidth: 990,
        maxWidth: 990,
        minHeight: 770,
        maxHeight: 770
      }
    }
  }).then(gotStream).catch(getUserMediaError);

最终捕获的图像为990x770,但这会导致图像周围带有黑色边框。 源的真实视频是995x744,但是由于给定的限制,它的边框变黑了。 如果我没有设置任何约束,则抛出一个错误,说宽度为0,因此需要设置某种宽度。

即使将995x744的视频源大小手动输入到约束中也不起作用,因为它似乎需要比源更大的区域来捕获它。 不确定为什么无法完全捕获它吗? 也许还有其他我做错的事情可以解决这个问题?

捕获视频时如何获取视频的大小,以便可以将限制设置为视频的实际大小? 因此,捕获的图像与源视频的大小完全相同,没有黑边等。

答案很简单。

在一个简单的数学运算中,您可以看到:

990 / 770 = 1.28
995 / 744 = 1.33

所以-当您需要1.28mandatory比率时-当然,您会得到黑色边框。 您违反了相机支持的1.33的真实宽高比。

避免黑色边框的唯一方法是要求widthheight长宽比为1.33

希望这可以帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM