Для этого доступен новый стандартный API: getDisplayMedia .
К сожалению, пока он реализован не во всех браузерах, но доступен с использованием adapter.js в Firefox, , например: :
adapter.browserShim.shimGetDisplayMedia(window, "screen"); // or "window"
(async () => {
try {
video.srcObject = await navigator.mediaDevices.getDisplayMedia({video: true});
} catch(e) {
console.log(e);
}
})();
Он заполняет старый нестандартный API в Firefox. Проверьте мой блог о том, как настроить Chrome.
К сожалению, Firefox делает выбор между приложением JS и запрашивает "screen"
и "window"
атм, что является нестандартным, поэтому полифилл адаптера может запрашивать только одно или другое.
Если вы работаете в Windows, черный экран с окнами "Aero" - это известная ошибка .
Браузеры работают над реализацией этого API, как мы говорим.