Javascript 使用HTML5/JS的手机后置摄像头

Javascript 使用HTML5/JS的手机后置摄像头,javascript,android,html,camera,webcam,Javascript,Android,Html,Camera,Webcam,最后,我有了一个工作脚本,它使我能够在桌面和手机上访问相机。但是在手机上,我想主要使用后置摄像头 我尝试了facingMode:environment,但它不起作用 以下是我的链接和代码: function startcam() { // Grab elements, create settings, etc. var video = document.getElementById('video'); var mediaConfig =

最后,我有了一个工作脚本,它使我能够在桌面和手机上访问相机。但是在手机上,我想主要使用后置摄像头

我尝试了facingMode:environment,但它不起作用

以下是我的链接和代码:

     function startcam() {

        // Grab elements, create settings, etc.
        var video = document.getElementById('video');
        var mediaConfig =  { video: true };
        var errBack = function(e) {
            console.log('An error has occurred!', e)
        };

        // Put video listeners into place
        if(navigator.mediaDevices && navigator.mediaDevices.getUserMedia) {
            navigator.mediaDevices.getUserMedia(mediaConfig).then(function(stream) {
                video.src = window.URL.createObjectURL(stream);
                video.play();
            });
        }

        /* Legacy code below! */
        else if(navigator.getUserMedia) { // Standard
            navigator.getUserMedia(mediaConfig, function(stream) {
                video.src = stream;
                video.play();
            }, errBack);
        } else if(navigator.webkitGetUserMedia) { // WebKit-prefixed
            navigator.webkitGetUserMedia(mediaConfig, function(stream){
                video.src = window.webkitURL.createObjectURL(stream);
                video.play();
            }, errBack);
        } else if(navigator.mozGetUserMedia) { // Mozilla-prefixed
            navigator.mozGetUserMedia(mediaConfig, function(stream){
                video.src = window.URL.createObjectURL(stream);
                video.play();
            }, errBack);
        };

 };
 startcam();

任何帮助都将不胜感激。

这在chrome for android中运行良好

navigator.mediaDevices.getUserMedia({ 
  video: { 
    facingMode: { exact: "environment" }
  } 
})
.then(function(stream) {
  video.src = window.URL.createObjectURL(stream);
  video.play();
});

这在chrome for android中运行良好

navigator.mediaDevices.getUserMedia({ 
  video: { 
    facingMode: { exact: "environment" }
  } 
})
.then(function(stream) {
  video.src = window.URL.createObjectURL(stream);
  video.play();
});

当你说你已经尝试了
facingMode:“environment”
,你是需要它还是更喜欢它?我猜你在跟踪?我会要求的。是的,我尝试过更改mediaConfig,但没有成功:var mediaConfig={video:{facingMode:“environment”};MDN文档说明,如果需要,应该使用
var mediaConfig={video:{facingMode:{exact:“environment”}}
。行吗?不行。在仍然使用前置摄像头的移动chrome上,在桌面上甚至没有显示。您是否尝试过直接传递参数而不是作为变量传递?参数可能是作为字符串而不是JSON对象传递的,因此
getUserMedia()
方法可能没有接收到任何内容。或者尝试使用
JSON.parse()
,看看这是否有帮助。当你说你已经尝试了
facingMode:“环境”
,你是需要它还是更喜欢它?我猜你在跟踪?我会要求的。是的,我尝试过更改mediaConfig,但没有成功:var mediaConfig={video:{facingMode:“environment”};MDN文档说明,如果需要,应该使用
var mediaConfig={video:{facingMode:{exact:“environment”}}
。行吗?不行。在仍然使用前置摄像头的移动chrome上,在桌面上甚至没有显示。您是否尝试过直接传递参数而不是作为变量传递?参数可能是作为字符串而不是JSON对象传递的,因此
getUserMedia()
方法可能没有接收到任何内容。或者尝试使用
JSON.parse()
,看看这是否有帮助。另外,在IOS中的Safari中。另外,在IOS中的Safari中。