Javascript MediaDevices.getUserMedia中的facingMode在最新的Android Chrome(v53)中似乎不起作用

Javascript MediaDevices.getUserMedia中的facingMode在最新的Android Chrome(v53)中似乎不起作用,javascript,android,google-chrome,camera,getusermedia,Javascript,Android,Google Chrome,Camera,Getusermedia,我有一个功能,可以让用户选择相机,并显示在页面上捕获的视频。 我的代码在Android Google Chrome版本52之前运行,但不知道为什么现在会被破坏 首先,我检查我可以使用哪些设备 navigator.mediaDevices.enumerateDevices() .then(function(devices) { devices.forEach(function(device) { console.log(device.kind + ": " + device.label

我有一个功能,可以让用户选择相机,并显示在页面上捕获的视频。 我的代码在Android Google Chrome版本52之前运行,但不知道为什么现在会被破坏

首先,我检查我可以使用哪些设备

navigator.mediaDevices.enumerateDevices()
.then(function(devices) {
  devices.forEach(function(device) {
    console.log(device.kind + ": " + device.label +
                " id = " + device.deviceId);
  });
})
.catch(function(err) {
  console.log(err.name + ": " + err.message);
});
它返回两个摄像机,一个在前面,一个在后面,正如我所期望的

视频输入:摄像头1,面向前id= ef5f41259c805a533261c2d91c274fdbfa8a6c8d629231cb484845032f90e61a 摄像头:19视频输入:摄像头0,面向背面id= 81448a117b2569ba9af905d01384b32179b9d32fe6a3fbabddf03868f36e4750

然后,我遵循下面的步骤,下面是我使用的具体内容:

<video id="video" autoplay></video>
<script>
    var p = navigator.mediaDevices.getUserMedia({ video: {facingMode: "environment", width: 480, height: 800} });

    p.then(function(mediaStream) {
      var video = document.querySelector('video');
      video.src = window.URL.createObjectURL(mediaStream);
      video.onloadedmetadata = function(e) {
          // Do something with the video here.
      };
    });

    p.catch(function(err) { console.log(err.name); }); // always check for errors at the end.
</script>

无论我设置facingMode:environment还是facingMode:{exact:environment},结果都是使用前置摄像头。我也应该向谷歌报告吗?

请看@jib,谢谢。但是我应该在合同中使用deviceId吗?因为它不是标准中写的,它只适用于Chrome?deviceId是标准的。请参阅-并且从版本42开始就在Firefox中。我相信Opera和Edge也支持它。或者,使用我提到的polyfill,它在Chrome中添加了facingMode。@jib不幸的是,facingMode环境在Chrome v53中不起作用,即使我包括,它是否与注释有关[:从版本47到52,基于承诺的接口仅通过adapter.js polyfill或使用标志可用chrome://flags/enable-experimental-web-platform-features. 从53版开始,基于promise的界面在默认情况下是打开的,尽管该界面仍然无法通过navigator使用。感谢您的提醒。您很好对,五十三年。