Javascript Navigator.getUserMedia()已弃用。如何更改为MediaDevices.getUserMedia()
嘿,我正在尝试在浏览器中构建人脸ai。在我的笔记本电脑上一切正常,但当我尝试在raspberry Pi上运行它时,它会说navigator.getUserMedia()不受欢迎。我知道有一种新方法叫做MediaDevices.getUserMedia,但我不知道如何实现它 代码Javascript Navigator.getUserMedia()已弃用。如何更改为MediaDevices.getUserMedia(),javascript,html,api,Javascript,Html,Api,嘿,我正在尝试在浏览器中构建人脸ai。在我的笔记本电脑上一切正常,但当我尝试在raspberry Pi上运行它时,它会说navigator.getUserMedia()不受欢迎。我知道有一种新方法叫做MediaDevices.getUserMedia,但我不知道如何实现它 代码 const video = document.getElementById('video') Promise.all([ faceapi.nets.tinyFaceDetector.loadFromUri('/mo
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)
)
}
上列出了几种方法。您可以通过以下方式访问
mediaDevices
对象:
异步函数getMedia(约束){
让stream=null;
试一试{
stream=Wait navigator.mediaDevices.getUserMedia(约束);
/*使用流*/
}捕捉(错误){
/*处理错误*/
}
}
或者直接使用承诺:
navigator.mediaDevices.getUserMedia(约束)
.then(函数(流){
/*使用流*/
})
.catch(函数(err){
/*处理错误*/
});
以下内容改编自本节:
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); });