如何获取用户实际选择的屏幕共享类型?
获取用户实际选择的屏幕共享类型
当然可以,你可以通过视频轨道的getSettings()方法获取用户实际选择的共享类型。当成功获取到显示流后,取出视频轨道并调用该方法,返回的配置对象中displaySurface字段会明确标识用户的选择:
monitor:用户选择了整个屏幕window:用户选择了某个应用窗口browser:用户选择了浏览器标签页
具体代码示例如下:
const stream = await navigator.mediaDevices.getDisplayMedia({ video: { displaySurface: "monitor" }, }); // 获取第一个视频轨道(屏幕共享流通常只有一个视频轨道) const videoTrack = stream.getVideoTracks()[0]; // 获取轨道的实际配置信息 const trackSettings = videoTrack.getSettings(); // 输出用户实际选择的共享类型 console.log(trackSettings.displaySurface);
需要注意的是,只有在用户完成授权并成功获取媒体流后,才能调用getSettings()拿到准确的displaySurface值,该属性在主流浏览器(Chrome、Edge、Firefox等)中均已支持。
内容的提问来源于stack exchange,提问作者kaan_atakan
相关产品推荐
相关产品推荐

