javascript - 使用当前不支持的 applyConstraints 切换面临模式(媒体流 Api)
问题描述
我正在阅读这篇文章,几乎读到一半,您可以阅读以下内容
function switchCameras(track, camera) {
let constraints = track.getConstraints();
constraints.facingMode = camera;
track.applyConstraints(constraints);
}
此函数接受一个 MediaStreamTrack 和一个指示要使用的摄像头朝向模式的字符串,获取当前约束,将 MediaTrackConstraints.facingMode 的值设置为指定值,然后应用更新的约束集。
但是在文章末尾的现场演示中尝试使用它时,我试图facingMode
videoConstraint
在MediaStreamTrack
流getUserMedia
式传输时使用track.applyConstraints(constraints);
例如,如果从getUserMedia()
这些约束开始:
{
video: {
"facingMode": "user"
},
audio: false
}
并使用applyConstraints()
此配置:
{
"facingMode": { "exact": "environment" }
}
输出是一个错误
- 在 Android (Chrome) 中:
Error OverconstrainedError in contraint facingMode: Cannot satisfy constraints
- 在 iOS (Safari) 中:
Error OverconstrainedError in constraint facingMode: Constraint not supported
我还和一位朋友在 Windows 表面上尝试过,他们收到了类似的错误。
在这篇文章和这个论坛错误报告中可以找到对这些问题的引用。所以我的问题是,这是预期的行为,还是对这两个和第一篇文章的帮助已经过时?
此外,我将不胜感激有关如何使用applyConstraints()
提前致谢
解决方案
我认为 facesMode 错误的原因是因为它是不同的设备。
推荐阅读
- userscripts - 如何使用 Tampermonkey 为计时器/秒表添加开始和停止按钮
- go - 使用依赖注入测试包装函数
- angular - 使用 HTML 插值来更改 Angular2+ 中的 CSS 样式是不好的做法吗?
- excel - 将文件另存为 csv,不断出现为 .xlsx
- html - 为什么我们不能使用 CSS 自定义 HTML 中选择选项的突出显示颜色?
- c# - 使用自定义过滤器在表单中输入 HTML 时 ASP.NET MVC 处理错误
- perl - 将导入的函数传递给 Perl 中的另一个包
- python - 数据框:如何为每一行选择不同的列
- r - 如何解决 RSelenium 错误消息“无法连接到 localhost 端口 4444:连接被拒绝”?
- url - 健康检查是否应该调用其他应用健康检查