Macos 我在Macbook Pro上遇到了过度训练的错误,只有Firefox
这是我的密码Macos 我在Macbook Pro上遇到了过度训练的错误,只有Firefox,macos,firefox,webrtc,Macos,Firefox,Webrtc,这是我的密码 const userVideo=document.getElementById(“用户视频”); 常量约束={ 音频:{ 自动增益控制:错误, 信道数:2, 是的, 噪音抑制:是的, 采样器:48000, 样本:16, }, 视频:{ facingMode:“用户”, 宽度:{最小值:0,理想值:320,最大值:320}, 高度:{最小值:0,理想值:240,最大值:240}, 帧速率:{理想值:15,最大值:30}, }, }; (异步()=>{ const userMedia=
const userVideo=document.getElementById(“用户视频”);
常量约束={
音频:{
自动增益控制:错误,
信道数:2,
是的,
噪音抑制:是的,
采样器:48000,
样本:16,
},
视频:{
facingMode:“用户”,
宽度:{最小值:0,理想值:320,最大值:320},
高度:{最小值:0,理想值:240,最大值:240},
帧速率:{理想值:15,最大值:30},
},
};
(异步()=>{
const userMedia=await navigator.mediaedevices.getUserMedia(约束);
console.log(userMedia);
userVideo.srcObject=userMedia;
})();
它在Chrome和Safari上运行良好
但是在Firefox中,我得到了一个错误OverconstrainedError
MediaStreamError
constraint: "width"
message: "Constraints could be not satisfied."
name: "OverconstrainedError"
stack: ""
因此,我尝试将宽度
和高度
约束更改为
width: { min: 0, ideal: 320, max: 360 },
height: { min: 0, ideal: 240, max: 300 },
它工作得很好
另外,我在这个网站上测试了WebRTC
MacBook上的Firefox不支持320x240
但是另一个浏览器和另一个操作系统可以支持它
我想知道为什么。请给我解释一下。这是。Firefox还不支持将相机分辨率缩小到限制
这意味着Firefox目前只提供本机摄像头模式
变通办法
删除宽度和高度上的max
约束min
和max
是严格执行的,并导致此处出现过度约束错误
它们也基本上是不必要的,因为理想值具有重力。因此,除非您准备好处理错误并使用回退重试,否则不要使用它们
浏览器应该已经找到最接近理想分辨率的分辨率
了解有关约束的更多信息