首页 > 解决方案 > 使用当前不支持的 applyConstraints 切换面临模式(媒体流 Api)

问题描述

我正在阅读这篇文章,几乎读到一半,您可以阅读以下内容

function switchCameras(track, camera) {
  let constraints = track.getConstraints();
  constraints.facingMode = camera;
  track.applyConstraints(constraints);
}

此函数接受一个 MediaStreamTrack 和一个指示要使用的摄像头朝向模式的字符串,获取当前约束,将 MediaTrackConstraints.facingMode 的值设置为指定值,然后应用更新的约束集。

但是在文章末尾的现场演示中尝试使用它时,我试图facingMode videoConstraintMediaStreamTrackgetUserMedia式传输时使用track.applyConstraints(constraints);

例如,如果从getUserMedia()这些约束开始:

{
  video: {
    "facingMode": "user"
  },
  audio: false
}

并使用applyConstraints()此配置:

{
    "facingMode": { "exact": "environment" }
}

输出是一个错误

在这篇文章这个论坛错误报告中可以找到对这些问题的引用。所以我的问题是,这是预期的行为,还是对这两个和第一篇文章的帮助已经过时?

此外,我将不胜感激有关如何使用applyConstraints()

提前致谢

标签: javascriptconstraintswebrtcgetusermediamediastream

解决方案


我认为 facesMode 错误的原因是因为它是不同的设备。


推荐阅读