Firefox 22 mozGetUserMedia使用'屏幕'作为设备源

Firefox 22 mozGetUserMedia using 'screen' as device source

本文关键字:屏幕 mozGetUserMedia Firefox 使用      更新时间:2023-09-26

对于Firefox 22中的WebRTC支持,人们议论纷纷。这是为了解Firefox开发的人准备的:目前Firefox是否支持桌面屏幕捕获?

Chrome 26+确实存在这项技术,它为屏幕捕获提供了实验支持(使用"屏幕"作为设备源);实现这一点的代码(片段)是:

   // select any supported getUserMedia function
   navigator.getMedia = (navigator.getUserMedia || 
                         navigator.webkitGetUserMedia ||
                         navigator.mozGetUserMedia ||
                         navigator.msGetUserMedia);
  // if getUserMedia is not supported, do nothing 
  if( !navigator.getMedia ) return;
  // request for user media
  navigator.getMedia(
  {
     video : {
        mandatory : {
           // request 'screen' as a source media
           chromeMediaSource : 'screen'
        }
     }
  },
  // success
  function( localMediaStream )
  {
     // process local media stream...
  },
  // failure
  function( error )
  {
     // error handling
  });

查看W3C文档,对象MediaSourceConstraints, MediaTrackConstraints, MediaTrackConstraintsSet尚未标准化。这可能只是因为API太模糊了,无法在Firefox产品中显示此功能。如果能知道目前的支持情况就好了。

这在Firefox中是可能的,但出于安全考虑,支持隐藏在一些首选项后面。特别是CCD_ 3下的CCD_。

这篇关于Mozilla错误报告的评论说明了其中的一些担忧:

现在我们重新设计了<input type="file">,使其不在屏幕上绘制完整的路径,情况有所好转。我们在绘制交叉原点图像和<iframe> s等方面仍然存在问题。

即使用户选择加入,我也会担心这样的情况:"用户将应用程序页面A加载到一个选项卡中,应用程序页面B加载到另一个选项卡,页面B请求屏幕共享页面A的权限,这看起来很好,用户接受了,然后应用程序将FB或gmail的<iframe>交换到页面A中并获取内容。"

虽然media.getusermedia.screensharing.enabled目前在发布通道中默认为true,但实际上只有那些被列入media.getusermedia.screensharing.allowed_domains白名单的域才允许使用它

如果您的域在允许列表中,您可以使用video属性中的以下密钥来使用它。

video: {
    mozMediaSource: "screen",
    mediaSource: "screen"
}

Mozilla在一个被Firefox Nightly和Firefox Developer Edition列入白名单的域上托管了一个getUserMedia测试页面。如果你使用这两个版本中的任何一个,你都可以看到它在运行。或者,您可以将域添加到about:config下的白名单中,并在发布和测试频道中使用它。

不,Firefox还没有像Chrome那样添加屏幕共享:https://bugzilla.mozilla.org/show_bug.cgi?id=742832