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

Javascript Firefox 22使用';屏幕';作为设备源,javascript,html,firefox,webrtc,getusermedia,Javascript,Html,Firefox,Webrtc,Getusermedia,Firefox22中的WebRTC支持引起了一些讨论。这是为了解Firefox开发的人准备的:Firefox目前是否支持桌面屏幕捕获 Chrome 26+确实存在该技术,该技术为屏幕捕获提供了实验支持(使用“屏幕”作为设备源);实现这一点的代码(片段)是: // select any supported getUserMedia function navigator.getMedia = (navigator.getUserMedia ||

Firefox22中的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、MediaTrackConstraintSet
尚未标准化。这可能只是因为API太模糊,无法在Firefox产品中显示此功能。知道当前的支持状态就好了。

不,Firefox还没有像Chrome那样添加屏幕共享:

这在Firefox中现在是可能的,但是由于安全问题,支持隐藏在某些首选项后面。特别是
media.getusermedia.*
首选项下的
about:config

这说明了其中一些问题:

现在我们重新设计了
,不再在屏幕上绘制完整的路径,情况就好了。我们在绘制跨原点图像和
s等方面仍然存在问题

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

虽然在发布频道中默认情况下,
media.getusermedia.screensharing.enabled
当前为
true
,但实际上只允许在
media.getusermedia.screensharing.allowed\u域下列出的域使用它

如果您的域在允许列表中,您可以使用
视频
属性中的以下键来使用它

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

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

谢谢!我知道前面的答案uld在某些时候已经过时。感谢您的回答。如何才能获得窗口选择对话框?如果我绕过权限,该对话框将不会显示。如果我不绕过权限,getUserMedia在窗口/屏幕调用中完全失败,但仍然适用于相机。@Brad绕过权限是什么意思?@AlexanderO'Mara
about:config
设置为
true
@Brad哦,我知道发生了什么。显然,这个偏好完全禁用了权限对话框,无法选择要共享的窗口/屏幕/应用程序(尽管奇怪的是,我曾经让屏幕正常工作过一次)。这可能是一个未被注意到的逻辑错误,因为该功能不受官方支持(这对浏览器来说是一个危险的功能)。我想你可以向Mozilla提交一份关于它的错误报告。在Firefox 27中修复:-)