Javascript navigator.getUserMedia不适用于safari,但适用于其他浏览器

Javascript navigator.getUserMedia不适用于safari,但适用于其他浏览器,javascript,Javascript,在我的应用程序中,我的一个xhtml页面正在访问摄像头,因为我已经创建了一个脚本,脚本如下 function getCamera() { navigator.getMedia = ( navigator.getUserMedia || // use the proper vendor prefix navigator.webkitGetUserMedia || navigator.mozGetUserMedia || na

在我的应用程序中,我的一个xhtml页面正在访问摄像头,因为我已经创建了一个脚本,脚本如下

function getCamera() {
    navigator.getMedia = ( navigator.getUserMedia || // use the proper vendor prefix
           navigator.webkitGetUserMedia ||
           navigator.mozGetUserMedia ||
           navigator.msGetUserMedia);
    navigator.getMedia({video: true}, function() {
      console.log("webcam is available ");
      document.getElementById('camera-image').style.display='';
      document.getElementById('no-image').style.display='none';
    }, function() {
      console.log("webcam is not available ");
      document.getElementById('camera-image').style.display='none';
      document.getElementById('no-image').style.display='';
    });
}
该脚本在chrome、firefox和opera上运行良好,但在safari上不起作用

有人能帮我吗?

根据MDN文档,已弃用,Safari浏览器不支持。 您可以看到取自MDN文档的兼容性表。

相反,您可以使用更好地支持不同浏览器的。

试试这个代码。希望这能对你有所帮助

function getCamera() {

  if (!navigator.mediaDevices && !navigator.mediaDevices.getUserMedia) {
    navigator.userMedia = navigator.mozGetUserMedia || navigator.getUserMedia
    if (!navigator.userMedia) {
      alert("Please Update or Use Different Browser");
      return
    }
    navigator.userMedia({
      video: true
    }, (stream) => showCam(stream), (err) => showErr(err))
    return
  }

  navigator.mediaDevices.getUserMedia({
      video: true
    })
    .then((stream) => showCam(stream))
    .catch((err) => showErr(err))

  function showCam(stream) {
    let video = document.querySelector("video");
    video.srcObject = stream;
  }

  function showErr(err) {
    let message = err.name === "NotFoundError" ? "Please Attach Camera" :
      err.name === "NotAllowedError" ? "Please Grant Permission to Access Camera" : err
    alert(message)
  }
}
. 不赞成