HTML5 <video>在Chrome中使用navigator.getUserMedia()

时间:2015-09-04 22:09:56

标签: google-chrome webkit html5-video video-processing getusermedia

我一直在使用HTML5 <video>元素,它在Chrome和Firefox中都有效,但由于某种原因,当我从本地文件加载时它无法正常工作在chrome中然而它将在Firefox中工作。

示例:http://codepen.io/asolar/pen/BoyPxZ

任何人都可以告诉我为什么这在 chrome 中不起作用,并且当它是一个文件时在 firefox 中有效吗?我可以在chrome中更改某种类型的安全设置吗?

<html>
<head>
</head>
<body>

  <div>
    <video id="camera" width="640" height="480" autoplay style="display: inline;"></video>
  </div>

  <script type="text/javascript">

  window.addEventListener('load', function() {Video();}, false);

  // Setup the Audio and Video
  function Video() {

    navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia;
    window.URL = window.URL || window.webkitURL || window.msURL || window.mozURL;

    var constraints = {video: true, audio: true};
    navigator.getUserMedia(constraints, (function(stream)
    {
      PlayVideo(stream);
      //PlayAudio(stream);
    }),
    (function(err) {
      console.log("The following error occured: " + err.name);
    }));
  }

  // play the <video>
  function PlayVideo(stream) {
    video = document.querySelector('video');
    video.src = window.URL.createObjectURL(stream);
    video.onloadedmetadata = function(e) {
      video.play();
    }
  }

  </script>

</body>
</html>

1 个答案:

答案 0 :(得分:0)

你可以责怪Goolge: getUserMedia()将在Chrome 47及更高版本中使用http://抛出错误(由于Chrome中的弃用)。 https://code.google.com/p/chromium/issues/detail?id=520765