对于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
尚未标准化。可能只是因为此功能在Firefox生产中出现,所以API太模糊了。了解目前的支持状况会很好。
答案 0 :(得分:4)
不,Firefox还没有添加像Chrome这样的屏幕共享:https://bugzilla.mozilla.org/show_bug.cgi?id=742832
答案 1 :(得分:4)
现在可以在Firefox中使用,但出于安全考虑,支持隐藏在某些首选项背后。特别是media.getusermedia.*
下的about:config
偏好设置。
此comment on a Mozilla bug report说明了其中一些问题:
现在我们已经重新设计了
<input type="file">
以不在屏幕上绘制完整路径,事情就更好了。我们仍然遇到绘制跨源图像和<iframe>
等问题。即使用户选择加入,我也会担心用户在一个标签页中添加应用页面A,在另一个标签页面中加载应用页面B,页面B要求获得屏幕共享页面A的权限看起来很好,用户接受,然后应用程序将
<iframe>
FB或gmail等交换到页面A并抓取内容。
虽然发布渠道默认media.getusermedia.screensharing.enabled
目前为true
,但实际上只允许在media.getusermedia.screensharing.allowed_domains
下列入白名单的域名。{/ p>
如果您的域位于允许列表中,则可以使用video
属性中的以下键来使用它。
video: {
mozMediaSource: "screen",
mediaSource: "screen"
}
Mozilla在Firefox Nightly和Firefox Developer Edition列入白名单的域上托管getUserMedia Test Page。如果您使用这些版本的Firefox中的任何一个,您可以看到它的实际效果。或者,您可以将域添加到about:config
下的白名单中,并在发布和测试版渠道中使用它。