gpt4 book ai didi

javascript - Safari 12 忽略 getUserMedia 约束

转载 作者:数据小太阳 更新时间:2023-10-29 04:21:04 24 4
gpt4 key购买 nike

出于某种原因,Safari 12(尚未在其他版本上尝试过)完全忽略了 getUserMedia 约束。

我的代码看起来像这样

  navigator.mediaDevices.getUserMedia({
video: {
facingMode: 'environment',
width: {
min: 640,
ideal: 1280
}
},
audio: true
})
.then(userStream)//Safari on Mac ignores constraints and ends up executing here
.catch(fallback)//Chrome on Mac raises and error and ends up executing here

在 Chrome 上,当我执行 stream.getVideoTracks()[0].getConstraints() 时,我得到了预期的结果 - 上面列出的约束。

当我在 Safari 中执行相同操作时,我得到一个空对象。

当我尝试强制使用后置摄像头(用于移动设备)时出现问题,然后捕获错误以回退到前置摄像头。

Mac 上的 Chrome 会正确引发错误并回退到前置摄像头。

当被迫使用后置摄像头时,Mac 上的 Safari 不会引发任何错误,从而导致我的应用程序进一步出现错误属性。

已搜索 SO、getUserMedia,但仍然找不到任何解决方案,甚至找不到遇到相同问题的人。

也许有更好的方法来确定设备是否有可用的前置/后置摄像头?

编辑:

getSupportedConstraints() 函数正确返回支持 facingMode。问题是它在设置时被忽略。至于 getConstraints() 函数不受支持 - 可能是这种情况,但这不是问题所在。问题是执行受支持的约束(在本例中为 facingMode)。

如果您尝试设置 facingMode: 'environment' 并尝试从 Chrome 和 Safari 打开相同的代码,则可以使用提供的代码轻松复制此问题。

最佳答案

github 上的这个问题 webrtc issue closed似乎有适合您的解决方案。

为了在不同的浏览器上工作,我在 webrtc 上费了很多功夫。

祝你好运!

关于javascript - Safari 12 忽略 getUserMedia 约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54462407/

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