您可能希望从旧版本中的adapter.js如何使用facesMode获取灵感: https://github.com/webrtcHacks/adapter/blob/master/src/js/chrome/getusermedia.js
基本上它尝试使用navigator.mediaDevices.enumerateDevices(你可能不得不求助于早期的MediaStreamTrack.getSources()函数)来枚举设备,然后尝试猜测哪一个是后置摄像头,将deviceId传递给getUserMedia。请注意这一点,因为旧版本可能具有不同的约束名称(请参阅constraintsToChrome_函数),因为deviceId的文档非常稀疏。
您需要更改面对模式
{ audio: true, video: { facingMode: "user" } }
要么
{ audio: true, video: { facingMode: { exact: "environment" } } }
首先,我强烈建议使用 AdapterJS 它通过所有不同的浏览器实现来弥补所有差异(很好 博客 来自Tsahi的这个主题)。
其次,您使用的是已弃用的GUM-API,我不建议这样做。我找到了 问题 在GitHub项目上,这正是你的问题,也许这会对你有帮助。
在问题中陈述:
该 navigator.getUserMedia 函数已被弃用,您应该使用较新的函数 MediaDevices.getUserMedia 功能。该 链接 对于文档。
navigator.getUserMedia
MediaDevices.getUserMedia
因此,如果您应用这些更改,GUM应该接受
约束(第一个答案正确说明),它应该为您提供手机后置摄像头的视频流。