我们可以通过以下方式请求媒体流到屏幕或窗口navigator.mediaDevices.getDisplayMedia()
。然而,这会立即提示用户决定使用哪种捕获。我需要检查浏览器/平台是否支持屏幕捕获。
当然,也可以检查一下'getDisplayMedia' in navigator.mediaDevices
,但这只是告诉我们浏览器是否支持该 API。特别是,在 Android 上的 FF 和 Chrome 上,定义了 API,我可以调用getDisplayMedia()
,但它总是立即返回一个NotAllowedError
错误(这是预期的:根据卡尼乌斯 https://caniuse.com/#feat=mdn-api_mediadevices_getdisplaymedia,手机浏览器尚不支持getDisplayMedia
.)
接下来,我尝试检查navigator.mediaDevices.getSupportedConstraints()
。但是,我的移动 FF 返回与我的桌面 FF 完全相同的对象。尤其,navigator.mediaDevices.getSupportedConstraints().mediaSource
is true
在这两种情况下。最后,返回的数据navigator.mediaDevices.enumerateDevices()
也没有帮助我。我只得到一个设备和组 ID,我无法以任何方式解释它(对吗?)。
是否可以通过以下方式检测是否进行屏幕捕获getDisplayMedia
是否提前支持?
(Note: 本次问答 https://stackoverflow.com/questions/46101264/detect-firefox-support-for-screen-sharing/46101620#46101620看起来相当相似,但大约是getUserMedia
而且已经很老了)
不幸的是,没有直接的方法来特征检测是否获取显示媒体将在这些浏览器上运行。
今天你能做的就是浏览器嗅探 UA 字符串 https://stackoverflow.com/questions/3514784/what-is-the-best-way-to-detect-a-mobile-device检测您不在移动设备上,因为移动设备缺乏支持。
我已经提交了一份规范上的问题 https://github.com/w3c/mediacapture-screen-share/issues/127根据你的问题,看看是否获取显示媒体最好还是留下来undefined
当不受支持时。
1. caniuse https://caniuse.com/#feat=mdn-api_mediadevices_getdisplaymedia claims Opera Mobile has support, but this appears not so when I test it https://jan-ivar.github.io/dummy/gdm.html.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)