Kku*_*kis 10 javascript safari getusermedia
出于某种原因,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
Run Code Online (Sandbox Code Playgroud)
在Chrome上,当我这样做时,stream.getVideoTracks()[0].getConstraints()我得到了预期的结果 - 上面列出的限制.
当我在Safari中做同样的事情时,我得到一个空对象.
当我尝试强制使用后置摄像头(用于移动设备)时出现问题,然后捕获错误以回退到前置摄像头.
Mac上的Chrome正确引发错误并退回到前置摄像头.
Mac上的Safari不会引起任何错误,当被迫使用后置摄像头时,导致我的应用程序中的错误属性.
搜索过SO,getUserMedia但仍找不到任何解决方案,甚至找不到有同样问题的人.
也许有更好的方法来确定设备是否有可用的前/后摄像头?
编辑:
getSupportedConstraints()函数正确返回facingMode支持的.问题是设置时会被忽略.至于getConstraints()不受支持的功能 - 可能是这种情况,但这不是问题.问题是执行受支持的约束(facingMode在本例中).
如果您尝试设置facingMode: 'environment'并尝试从Chrome和Safari中打开相同的代码,则可以使用提供的代码轻松复制此问题.
| 归档时间: |
|
| 查看次数: |
699 次 |
| 最近记录: |