【问题标题】:getUserMedia throw error NavigatorUserMediaError: InvalidStateErrorgetUserMedia 抛出错误 NavigatorUserMediaError: InvalidStateError
【发布时间】:2017-06-16 03:42:15
【问题描述】:

我从 desktopCapture.chooseDesktopMedia Api 获得了 streamId,但 getUserMedia 失败

navigator.mediaDevices.getUserMedia({
    audio: {
      mandatory: {
        chromeMediaSource: 'desktop',
        chromeMediaSourceId: streamId
      }
    },
    video: {
      mandatory: {
        chromeMediaSource: 'desktop',
        chromeMediaSourceId: streamId,
        maxWidth: window.screen.width,
        maxHeight: window.screen.height
      }
    }
  }).then(function(stream) {

    }).catch(function(err) {
       // The error show here
     console.log(err)
    });

谢谢

【问题讨论】:

  • 对不起。我正在编辑描述。捕获时显示错误
  • 你遇到了什么错误。
  • @Kumar 响应 tabCapture.capture 时出错:需要第一个参数。运行 tabCapture.capture 时未选中 runtime.lastError:尚未为当前页面调用扩展(请参阅 activeTab 权限)。无法捕获 Chrome 页面。
  • 您是否在 manifest.json 文件中添加了tabCapture 权限。
  • 是的。我加了

标签: google-chrome-extension getusermedia


【解决方案1】:

作为,navigator.mediaDevices.getUserMedia 给你一个承诺。所以,你必须像 Promise 一样使用它。你的函数应该是这样的。

var obj = {
    audio: {
      mandatory: {
        chromeMediaSource: 'desktop',
        chromeMediaSourceId: streamId
      }
    },
    video: {
      mandatory: {
        chromeMediaSource: 'desktop',
        chromeMediaSourceId: streamId,
        maxWidth: window.screen.width,
        maxHeight: window.screen.height
      }
    }
  };

window.navigator.mediaDevices.getUserMedia(obj).then(function(stream) {
    // Do your work with the stream
}).catch(function(err) {
   // Your error show here.
 console.log(err)
});

更多信息可以看这里-->Check it out希望对你有帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-07
    • 1970-01-01
    • 1970-01-01
    • 2012-10-28
    • 2016-05-24
    • 1970-01-01
    相关资源
    最近更新 更多