我需要使用HTML5扫描QR码以获取webapp。 我尝试使用webqr.js(demo),没关系,但智能手机和平板电脑默认打开前置摄像头。 所以我尝试使用getusermedia.js(demo),但一切都停止了。
你能帮我解决这个问题吗?
我甚至无法通过Firebug或其他类似工具查看问题所在,因为我在智能手机上只有笔记本电脑上的网络摄像头,我可以选择网络摄像头,我没有萤火虫或类似物。 / p>
答案 0 :(得分:1)
您必须指定要使用的相机。 Here是如何做到这一点的一个例子。您也可以使用使用后置摄像头的JsQRScanner。
var n = navigator;
if (n.mediaDevices && n.mediaDevices.getUserMedia) {
n.mediaDevices.getUserMedia({
video : {
facingMode : "environment"
},
audio : false
}).then(success);
} else {
MediaStreamTrack.getSources(function(sourceInfos) {
var videoSource = null;
for (var i = 0; i != sourceInfos.length; ++i) {
var sourceInfo = sourceInfos[i];
if (sourceInfo.kind === 'video'
&& sourceInfo.facing === 'environment') {
videoSource = sourceInfo.id;
}
}
sourceSelected(videoSource);
});
function sourceSelected(videoSource) {
var constraints = {
audio : false,
video : {
optional : [ {
sourceId : videoSource
} ]
}
};
if (n.getUserMedia) {
n.getUserMedia(constraints, success, error);
} else if (n.webkitGetUserMedia) {
n.webkitGetUserMedia(constraints, success, error);
} else if (n.mozGetUserMedia) {
n.mozGetUserMedia(constraints, success, error);
}
}
}