gpt4 book ai didi

javascript - getUserMedia() - 在移动设备上选择后置摄像头

转载 作者:行者123 更新时间:2023-12-05 00:26:34 29 4
gpt4 key购买 nike

这是我的问题。

我正在制作一个使用 JS-OCR 拍照并检测单词的小应用程序。它运作良好,但我只能使用前置摄像头。我的想法是只使用后置摄像头,没有必要切换摄像头。

我正在阅读 getUserMedia()功能,但我无法解决问题。这是涉及的一段代码(函数 searchForRearCamera() ):

function searchForRearCamera() {
var deferred = new $.Deferred();

// Check that the browser supports getUserMedia.
// If it doesn't show an alert, otherwise continue.
if (navigator.getUserMedia) {
// Request the camera.
navigator.getUserMedia(
// Constraints
{
video: true
},

// Success Callback
function (localMediaStream) {

},

// Error Callback
function (err) {
// Log the error to the console.
console.log('The following error occurred when trying to use getUserMedia: ' + err);
}
);

} else {
alert('Sorry, your browser does not support getUserMedia');
}

//MediaStreamTrack.getSources seams to be supported only by Chrome

if (MediaStreamTrack && MediaStreamTrack.getSources) {

MediaStreamTrack.getSources(function (sources) {
var rearCameraIds = sources.filter(function (source) {
return (source.kind === 'video' && source.facing === 'environment');
}).map(function (source) {
return source.id;
});

if (rearCameraIds.length) {
deferred.resolve(rearCameraIds[0]);
} else {
deferred.resolve(null);
}
});
} else {
deferred.resolve(null);
}

return deferred.promise();
}

这是 DEMO

最佳答案

navigator.getUserMedia早已被弃用。使用navigator.mediaDevices.getUserMedia现在。

要获取后置摄像头,您可以使用MediaConstraint:video:facingMode属性(property)。
可用值为 'user' (前置摄像头)和'environment' (后置摄像头)。

navigator.mediaDevices.getUserMedia({
audio: false,
video: {
facingMode: 'environment'
}
})
.then(stream => vid.srcObject = stream)
.catch(console.error);
<video muted autoplay id="vid"></video>


as a fiddle因为空源 StackSnippet 的 iframe 可能会阻止对 gUM 的请求。

关于javascript - getUserMedia() - 在移动设备上选择后置摄像头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52812091/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com