首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >火狐屏幕共享MediaStreamTrack给Twilio

火狐屏幕共享MediaStreamTrack给Twilio
EN

Stack Overflow用户
提问于 2017-09-21 16:28:44
回答 1查看 253关注 0票数 1

我使用Firefox v55.0.2

在文档(https://developer.mozilla.org/en-US/docs/Web/API/Navigator/getUserMedia)中,在NavigatorUserMedia.getUserMedia()之后,通常在successCallback中,我有一个MediaStream,但在我的例子中,我有LocalMediaStream。

我需要让MediaStreamTrack在twilio给它。

这是我的密码:

代码语言:javascript
复制
$scope.testShareFirefox = function () {
  var p = navigator.mediaDevices.getUserMedia({
    video: {
      mediaSource: 'screen',
      width: 640,
      height: 480
    },
  })
  .then(function(stream) {
    const screenLocalTrack = new twilio.Video.LocalVideoTrack(stream);
    $scope.videoConf.room.localParticipant.addTrack(screenLocalTrack);

    var video = document.createElement('video');
    $('#test-share-screen').append(video);

    video.srcObject = stream;
    video.play();
  })
  .catch(function (err) {
    console.log(err);
  });
};

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-25 07:43:37

我找到了解决办法。

LocalMediaStream是MediaStream的继承,所以我们可以使用".getTracks()“

这是工作解决方案:

代码语言:javascript
复制
$scope.testShareFirefox = function () {
  navigator.mediaDevices.getUserMedia({
    video: {
      mediaSource: 'screen',
      width: 640,
      height: 480
    },
  })
  .then(function(stream) {
    stream.getTracks().forEach(function(track) {
      $scope.videoConf.room.localParticipant.addTrack(track);
    });

    var video = document.createElement('video');
    $('#test-share-screen').append(video);

    video.srcObject = stream;
    video.play();
    var trackElements = document.querySelectorAll("track");
  })
  .catch(function (err) {
    console.log(err);
  });
};
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46348896

复制
相关文章

相似问题

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