Получить собственное «поверхностное» (например, экранное) разрешение потока `getDisplayMedia` - PullRequest
0 голосов
/ 29 апреля 2020

Я понимаю, что JS не может просто быть в состоянии получить разрешение экрана пользователя, поскольку оно может использоваться для отслеживания. Но я бы предположил, что как-то возможно получить фактическое разрешение экрана после того, как пользователь одобрил приглашение getDisplayMedia.

Мой вариант использования : я работаю над простым устройством записи экрана и Я хочу, чтобы пользователи могли выбирать разрешение потока. Конечно, предпочтительным является Native, но у пользователей на медленных устройствах возникают проблемы со скоростью кодирования, поэтому в этом случае помогает снижение разрешения. Я просто хочу предоставить пользователю параметры разрешения, которые равны или ниже собственного разрешения. Поэтому, если у пользователя экран 1080p, я хочу отобразить опции «480p», «720p» и «1080p», но не «1440p» и «2160p», например. При выборе опции будет повторно запрашиваться экран с height: { ideal: value }.

Итак: как мне получить собственное разрешение экрана? Вызов getDisplayMedia с пустым объектом ограничения не работает , к несчастью. Chrome возвращает поток 1080p для монитора 4k. Я думаю, что это ошибка, и я уже сообщил об этом . Но независимо от того: гарантируется ли getDisplayMedia({}) возврат собственного разрешения?

Я также видел ограничение video.resizeMode, которое можно установить на none. Должен ли getDisplayMedia({ video: { resizeMode: 'none' }}) всегда возвращать исходное разрешение? Это гарантировано спецификацией?

Есть ли какой-нибудь другой API, совершенно не связанный с getDisplayMedia, который мог бы мне помочь?

...