gpt4 book ai didi

javascript - WebRTC firefox 约束

转载 作者:可可西里 更新时间:2023-11-01 02:30:24 25 4
gpt4 key购买 nike

我目前在个人开发中使用 WebRTC,一切正常。我从网络摄像头获取流,但现在我想对 getUserMedia() 使用约束。

var constraints = {
audio: false,
video: {
mandatory : {
minWidth: 1280,
minHeight: 720
}
}
};

当我在 Firefox 中测试它时,它似乎忽略了约束。当我在 Chrome 或 Opera 上测试时,我的约束工作正常并且我的质量很好,有人知道为什么吗?问题出在 Firefox 上?

谢谢你的建议

最佳答案

火狐 does support getUserMedia() 的约束子集,但不是 Chrome 和 Opera 使用的过时语法。 mandatory/optional 语法在几年前就被弃用了,而 minWidthminHeight 在前一年就被弃用了。

MediaCapture 规范

According to the specification ,现在已经稳定了,你的例子应该这样写:

var constraints = {
audio: false,
video: {
width: { min: 1280 },
height: { min: 720 },
}
};

这适用于 Firefox(以及带有 adapter.js 的 Chrome):https://jsfiddle.net/34qxx5w1

在规范中,关键字 minmaxexact(又名 min == max)本质上是强制性的,而普通值和 ideal 不是。这是一个更完整的示例:

var constraints = {
audio: false,
video: {
width: { min: 1024, ideal: 1280, max: 1920 },
height: { min: 576, ideal: 720, max: 1080 },
}
};

这适用于 Firefox(和 Chrome,在简单的情况下使用 adapter.js polyfill)。

ideal 值在使用时具有引力,这意味着浏览器将尝试使用最小的 fitness distance 找到设置(和相机,如果有多个)。从给定的理想值。

普通值本质上是理想的,这意味着:

var constraints = { video: { width: 640, height: 480 } };

等同于:

var constraints = { video: { width: { ideal: 640 }, height: { ideal: 480 } } };

换句话说,getUserMedia() 将尝试遵守但绝不会故障转移的偏好设置。

如果您必须有一个特定的解决方案,请使用以下简写:

var constraints = { video: { width: { exact: 640 }, height: { exact: 480 } } };

火狐

截至目前,widthheightframeRate 和(在移动设备上)facingMode 受支持火狐。此外,一些版本注意事项:

  • FF32-37:不支持纯值和理想。但是,值不是强制性的,除非您添加非规范 require关键字。

  • FF38+:实现上述约束的规范。改进了对 Mac 相机的处理(尽管 frameRate 在 Mac 上有限制)。

  • FF43+:实现 MediaStreamTrack.applyConstraints()mediaDevices.getSupportedConstraints()

  • FF46+:实现echoCancellation

关于javascript - WebRTC firefox 约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28282385/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com