Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Navigator.getUserMedia()已弃用。如何更改为MediaDevices.getUserMedia()_Javascript_Html_Api - Fatal编程技术网

Javascript 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

嘿,我正在尝试在浏览器中构建人脸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)
  )
}

上列出了几种方法。您可以通过以下方式访问
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); });