首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Navigator.getUserMedia()被弃用。如何更改为MediaDevices.getUserMedia()

Navigator.getUserMedia()被弃用。如何更改为MediaDevices.getUserMedia()
EN

Stack Overflow用户
提问于 2019-12-08 12:05:38
回答 1查看 3K关注 0票数 2

嘿,我想在浏览器里建立一个脸-ai。在我的笔记本电脑上一切都很好,但是当我尝试在raspberry Pi上运行它时,它说navigator.getUserMedia()是不推荐的。我知道有一个名为MediaDevices.getUserMedia的新方法,但我不知道如何实现它。

代码语言:javascript
运行
复制
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)
  )
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-08 12:59:28

MDN页面上列出了几个方法。您可以像这样访问mediaDevices对象:

代码语言:javascript
运行
复制
async function getMedia(constraints) {
  let stream = null;

  try {
    stream = await navigator.mediaDevices.getUserMedia(constraints);
    /* use the stream */
  } catch(err) {
    /* handle the error */
  }
}

或者直接使用承诺:

代码语言:javascript
运行
复制
navigator.mediaDevices.getUserMedia(constraints)
.then(function(stream) {
  /* use the stream */
})
.catch(function(err) {
  /* handle the error */
});

以下内容取自示例部分:

代码语言:javascript
运行
复制
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); });
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59235207

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档