嘿,我想在浏览器里建立一个脸-ai。在我的笔记本电脑上一切都很好,但是当我尝试在raspberry Pi上运行它时,它说navigator.getUserMedia()是不推荐的。我知道有一个名为MediaDevices.getUserMedia的新方法,但我不知道如何实现它。
码
const video = document.getElementById('video')
Promise.all([
faceapi.nets.tinyFaceDetector.loadFromUri('/models'),
faceapi.nets.faceLandmark68Net.loadFromUri('/models'),
faceapi.nets.faceRecognitionNet.loadFromUri('/models'),
faceapi.nets.faceExpressionNet.loadFromUri('/models'),
]).then(startVideo)
function startVideo() {
navigator.getUserMedia(
{ video: {} },
stream => video.srcObject = stream,
err => console.error(err)
)
}
发布于 2019-12-08 12:59:28
MDN页面上列出了几个方法。您可以像这样访问mediaDevices
对象:
async function getMedia(constraints) {
let stream = null;
try {
stream = await navigator.mediaDevices.getUserMedia(constraints);
/* use the stream */
} catch(err) {
/* handle the error */
}
}
或者直接使用承诺:
navigator.mediaDevices.getUserMedia(constraints)
.then(function(stream) {
/* use the stream */
})
.catch(function(err) {
/* handle the error */
});
以下内容取自示例部分:
var constraints = { audio: true, video: true };
navigator.mediaDevices.getUserMedia(constraints)
.then(function(mediaStream) {
var video = document.querySelector('video');
video.srcObject = mediaStream;
video.onloadedmetadata = function(e) {
video.play();
};
})
.catch(function(err) { console.log(err.name + ": " + err.message); });
https://stackoverflow.com/questions/59235207
复制相似问题