Снимок экрана с использованием WEBRT C, Познакомьтесь с выбором пользовательского потока - PullRequest
1 голос
/ 19 апреля 2020

Эй, я использую WEBRT C для обмена экранами. Но я застрял в точке, где мне нужен весь экран пользователя, но браузер предоставляет пользователю больше опций, таких как вкладки приложения и браузера, поэтому я хочу проверить, какую опцию выбирает пользователь из всплывающего окна браузера, если его не весь экран, то я могу сгенерировать сообщение об ошибке для пользователя, пожалуйста, посмотрите это всплывающее окно изображение

const constraints = {
          audio: false,
          video: {
            width: { max: 1920 },
            height: { max: 1080 },
            frameRate: { max: 10 }
          }
        }
const stream = await navigator.mediaDevices.getDisplayMedia(constraints);

Ответы [ 2 ]

1 голос
/ 28 апреля 2020

После долгих поисков я нашел то, что мне подходит. если это работает для вас, это здорово.

const isFirefox = typeof InstallTrigger !== 'undefined';
const isChrome = !!window.chrome && (!!window.chrome.webstore || !!window.chrome.runtime);
const videoTrack = mediaStream.getVideoTracks()[0];
if (isFirefox) {
    if(videoTrack.label === "Primary Monitor"){
        return true;
    } else {
        return false;
    }
} else if (isChrome) {
    const videoSetting = videoTrack.getSettings();
    if (videoSetting && videoSetting.displaySurface !== "monitor") {
        return false;
    } else {
        return true;
    }
}
0 голосов
/ 19 апреля 2020

вы можете проверить вот так

const videoTrack = stream.getVideoTracks()[0];
console.log(videoTrack.getSettings());

В консоли вы увидите свойство 'displaySurface'. Также этот документ MDN поможет вам:)

...