首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将"navigator.mediaDevices.getUserMedia“改为"canvas.captureStream”

将"navigator.mediaDevices.getUserMedia“改为"canvas.captureStream”
EN

Stack Overflow用户
提问于 2018-08-28 21:10:34
回答 1查看 989关注 0票数 0

我正在使用getUserMedia(). html在服务器和客户端之间创建对等连接,视频和音频聊天就像使用Red5pro的魅力一样。问题是,我想使用captureStream().从DOM元素(画布)流,而不是从用户的照相机中流

Red5Pro有一个名为"OnGetUserMedia“的方法,其说明如下:

onGetUserMedia方法--当定义在为基于WebRTC的发布服务器提供的配置上时--将覆盖Red5 provide中对getUserMedia的内部调用。您可以提供自己的逻辑,说明如何调用getUserMedia和通过将onGetUserMedia属性设置为符合以下准则的方法获得的媒体流:不向onGetUserMedia提供输入参数。预期返回的对象是“承诺”对象。必须在承诺的解析中提供MediaStream对象。

当我做了一项研究,问Red5pro支持小组时,他们说

在返回的承诺中,您可以从MediaStream派生出一个captureStream。

参考文献:Red5Pro文档

我只是不知道该做什么,或者改变什么。

下面是onGetUserMedia方法的一个示例:

代码语言:javascript
复制
{
  host: "localhost",
  protocol: 8083,
  port: 8081,
  streamName: "mystream",
  iceServers: [{ urls: "stun:stun2.l.google.com:19302" }],
  onGetUserMedia: function () {
    return navigator.mediaDevices.getUserMedia({
      audio: true,
      video: {
        width: {
          max: 1920,
          ideal: 1280,
          min: 640,
        },
        width: {
          max: 1080,
          ideal: 720,
          min: 360,
        },
      },
    });
  },
};

有什么帮助吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-29 00:58:57

要求您做的是将onGetUserMedia属性设置为确实返回承诺的函数,该函数本身将解析为MediaStream。

这可能是因为他们构建API时有正确的假设,即他们的用户将拥有的大多数MediaStreams都来自mediaDevices.getUserMedia方法,并且该方法确实返回了这样一个承诺,即向MediaStream进行解析。

为了遵守他们的代码,您必须将自己的MediaStream封装在这样的承诺中。

实际上,HTMLCanvasElement.captureStream是同步的,并且直接返回MediaStream,而没有承诺的包装器。

要做到这一点,您只需要创建一个函数,该函数将您的MediaStream封装在一个承诺中,这可以通过https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/resolve方法来完成:

代码语言:javascript
复制
{
  [...]
  iceServers: [{urls: 'stun:stun2.l.google.com:19302'}],
  onGetUserMedia: () => Promise.resolve(canvas.captureStream(frameRate))
}

Ps:

() =>语法是ES6 箭头函数,受支持HTMLCanvasElement.captureStream的浏览器的广泛支持。

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

https://stackoverflow.com/questions/52066243

复制
相关文章

相似问题

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