Android 使用HTML5启用后置摄像头

Android 使用HTML5启用后置摄像头,android,html,google-chrome,asp.net-mvc-4,android-camera,Android,Html,Google Chrome,Asp.net Mvc 4,Android Camera,我正在从事一个使用MVC ASP.Net 4 HTML5(默认浏览器为google chrome v29.0.1547.57)的项目。我可以与这些工具交互并拍照,但只能使用前置摄像头,如何启用后置摄像头? 平板电脑的特点:三星Galaxy Tab 2 我希望您能帮助我查看一下如何使用 MediaStreamTrack.getSources(gotSources); 然后可以选择源并将其作为可选项传递到getUserMedia var constraints = { audio: {

我正在从事一个使用MVC ASP.Net 4 HTML5(默认浏览器为google chrome v29.0.1547.57)的项目。我可以与这些工具交互并拍照,但只能使用前置摄像头,如何启用后置摄像头? 平板电脑的特点:三星Galaxy Tab 2 我希望您能帮助我查看一下如何使用

MediaStreamTrack.getSources(gotSources);
然后可以选择源并将其作为可选项传递到getUserMedia

var constraints = {
  audio: {
    optional: [{sourceId: audioSource}]
  },
  video: {
    optional: [{sourceId: videoSource}]
  }
};
navigator.getUserMedia(constraints, successCallback, errorCallback);
它现在在稳定的Chrome和移动设备中完全可用(从v30开始)

可以在以下位置找到演示。这将允许访问前后摄像头

您会发现许多演示都依赖于不推荐使用的功能:

MediaStreamTrack.getSources() 
MediaDevices.enumerateDevices()
从Chrome 45和FireFox 39开始,您需要使用以下功能:

MediaStreamTrack.getSources() 
MediaDevices.enumerateDevices()
例如:

if(!navigator.mediaDevices | |!navigator.mediaDevices.enumerateDevices){
log(“enumerateDevices()不受支持”);
返回;
}
//列出摄像机和麦克风。
navigator.mediaDevices.enumerateDevices()
.然后(功能(设备){
设备。forEach(功能(设备){
console.log(device.kind+:“+device.label+
“id=“+设备.设备id”);
});
})
.catch(函数(e){
console.log(e.name+“:”+e.message);

});上次我开发该代码时,这里是我使用的版本:直接调用代码中的函数whichCamera,如果在计算机中运行,则指定哪个摄像头“用户”、“环境”或“计算机”)


在三星S8的Chrome浏览器中,我可以使用“facingMode”=“environment”从“后置摄像头”拍摄视频。默认值似乎是“用户”(前摄像头)

在TypeScript中:

    const video = document.getElementById("video");
    const constraints = {
        advanced: [{
            facingMode: "environment"
        }]
    };
    navigator.mediaDevices
        .getUserMedia({
            video: constraints
        })
        .then((stream) => {
            video.src = window.URL.createObjectURL(stream);
            video.play();
        });
参考:

Kinlan我试用了测试版(google chrome),效果很好,我希望最终版本能很快更新我的浏览器,谢谢你的提示。请注意,getSources现在已经不推荐使用了@Kinlan我很难强迫Chrome使用后置摄像头(在Nexus5上测试),即使我硬编码源代码。。。Firefox和Opera会自动询问用户要使用哪个摄像头。有什么想法吗?还值得一提的是,Chrome仅支持https连接上的摄像头。嗨,Lightning2050我可以获得完整的代码吗?如何切换我尝试过的源代码,但它不起作用!!提前谢谢嘿!看看这个:@Nahdiroviç你可能有什么html可以搭配吗?JS only在移动chrome上对我不起作用。@MajaJelen,你可以在哪里找到HTML代码,以适应我的JS代码。检查我的代码“Jul 16'17 at 15:53”的最新版本。100%工作解决方案。请参阅切换相机的解决方案对我来说非常有用,我在项目中使用了您的代码和此代码进行了一些修改