首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >navigator.getusermedia

navigator.getusermedia
EN

Stack Overflow用户
提问于 2012-09-13 21:22:38
回答 3查看 27.7K关注 0票数 4

我在玩弄html5的新规范,准确地说就是网络摄像头的功能。

following this tutorial提供。我得到了以下错误:

代码语言:javascript
运行
复制
Native web camera streaming (getUserMedia) is not supported in this browser. 

这是由if语句获取的:

代码语言:javascript
运行
复制
if (navigator.getUserMedia)

现在,我确信在我的浏览器中启用了navigator.getUserMedia,因为这些示例here工作得很好

因此,我修改了if中的代码,如下所示:

代码语言:javascript
运行
复制
if (navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia)

但是现在,我得到了一个javascript错误:

代码语言:javascript
运行
复制
Uncaught TypeError: Object #<Navigator> has no method 'getUserMedia' 

在这一行:

代码语言:javascript
运行
复制
navigator.getUserMedia('video', successCallback, errorCallback);

这真的说不通!它正在处理我发布的最后一个链接!

有什么想法吗?

提前谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-09-13 23:26:14

如果你正在测试navigator.getUserMedianavigator.webkitGetUserMedianavigator.mozGetUserMedianavigator.msGetUserMedia,那么你不能保证navigator.getUserMedia()是可用的。可能是那个,也可能是其他三个中的任何一个。您可以尝试如下所示(来自getUserMedia.js):

代码语言:javascript
运行
复制
navigator.getUserMedia_ = (   navigator.getUserMedia
                           || navigator.webkitGetUserMedia 
                           || navigator.mozGetUserMedia 
                           || navigator.msGetUserMedia);

if ( !! navigator.getUserMedia_) {
    navigator.getUserMedia_('video', successCallback, errorCallback);
    //The rest of your code
票数 18
EN

Stack Overflow用户

发布于 2019-07-09 01:16:58

navigator.getUserMedia()已弃用。参见MDN。

https://developer.mozilla.org/en-US/docs/Web/API/Navigator/getUserMedia

请改用navigator.mediaDevices.getUserMedia(constraints);

https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getUserMedia

票数 6
EN

Stack Overflow用户

发布于 2013-05-31 02:22:22

这是一项新技术。Yoy必须有Firefox/Chrome/Opera浏览器,并且必须更新。然后,试试这个:

代码语言:javascript
运行
复制
function showCamera()  {   var streaming = false,
      video        = window.content.document.createElement("video"),
      cover        = window.content.document.createElement("div"),
      canvas       = window.content.document.createElement("canvas"),
      photo        = window.content.document.createElement("img"),
      startbutton  = window.content.document.createElement("button"),
      width = 320,
      height = 0;

  photo.src = "http://placekitten.com/g/320/261";   window.content.document.body.insertBefore(video, window.content.document.body.firstChild);

  var navigator = window.navigator;
    navigator.getMedia = ( navigator.getUserMedia ||
                         navigator.webkitGetUserMedia ||
                         navigator.mozGetUserMedia ||
                         navigator.msGetUserMedia);
    navigator.getMedia(
    {
      video: true,
      audio: false
    },
    function(stream) {
      if (navigator.mozGetUserMedia) {
        video.mozSrcObject = stream;
      } else {
        var vendorURL = window.URL || window.webkitURL;
        video.src = vendorURL.createObjectURL(stream);
      }
      video.play();
    },
    function(err) {
      console.log("An error occured! " + err);
    }   );
    video.addEventListener('canplay', function(ev){
    if (!streaming) {
      height = video.videoHeight / (video.videoWidth/width);
      video.setAttribute('width', width);
      video.setAttribute('height', height);
      canvas.setAttribute('width', width);
      canvas.setAttribute('height', height);
      streaming = true;
    }   }, false);
    function takepicture() {
    canvas.width = width;
    canvas.height = height;
    canvas.getContext('2d').drawImage(video, 0, 0, width, height);
    var data = canvas.toDataURL('image/png');
    photo.setAttribute('src', data);   }
    startbutton.addEventListener('click', function(ev){
      takepicture();
    ev.preventDefault();   }, false);   }


showCamera();

如果您的浏览器是Firefox,但仍然无法工作,请转到about:config并设置/添加一个布尔变量,该变量的值为media.navigator.enabled

来源:https://developer.mozilla.org/en-US/docs/WebRTC/Taking_webcam_photos

P/d:我在一个Greasemonkey脚本中使用了这段代码,它起作用了。我对原始代码的第一行做了一些修改。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12407321

复制
相关文章

相似问题

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