Spec-Zone.ru › Web APIs

API захвата экрана

Ограниченная доступность

Эта функция не относится к Baseline, так как она не работает в некоторых из наиболее широко используемых браузеров.

  • Подробнее
  • Полная совместимость
  • Отправить отзыв

API захвата экрана добавляет возможности к существующему API захвата медиа и потоков, позволяя пользователю выбрать экран или часть экрана (например, окно) для захвата в виде медиапотока. Этот поток затем может быть записан или передан другим по сети.

Концепции и использование API захвата экрана

API захвата экрана относительно прост в использовании. Его единственный метод — MediaDevices.getDisplayMedia(), задача которого — попросить пользователя выбрать экран или часть экрана для захвата в виде MediaStream.

Для начала захвата видео с экрана вызывается getDisplayMedia() на navigator.mediaDevices:

captureStream =
  await navigator.mediaDevices.getDisplayMedia(displayMediaOptions);

Возвращаемое getDisplayMedia() Promise разрешается в MediaStream, который транслирует захваченное медиа.

Для более глубокого изучения использования API для захвата содержимого экрана в виде потока ознакомьтесь со статьёй Использование API захвата экрана.

Интерфейсы

CaptureController

Предоставляет методы для дальнейшей обработки сессии захвата независимо от её инициирования с помощью MediaDevices.getDisplayMedia(). Объект CaptureController ассоциируется с сессией захвата путём передачи его в вызов getDisplayMedia() в качестве значения свойства controller объекта опций.

Добавления к интерфейсу MediaDevices

MediaDevices.getDisplayMedia()

Метод getDisplayMedia() добавлен к интерфейсу MediaDevices. Аналогично getUserMedia(), этот метод создаёт промис, который разрешается в MediaStream, содержащий область экрана, выбранную пользователем, в формате, соответствующем заданным опциям.

Добавления к существующим словарям

API захвата экрана добавляет свойства к следующим словарям, определённым другими спецификациями.

MediaTrackConstraints

MediaTrackConstraints.displaySurface

Значение ConstrainDOMString, указывающее на тип поверхности отображения для захвата. Значение — одно из browser, monitor, или window.

MediaTrackConstraints.logicalSurface

Указывает, представляет ли видео в потоке логическую поверхность отображения (то есть такую, которая может быть не полностью видна на экране или может быть полностью вне экрана). Значение true указывает, что должна быть захвачена логическая поверхность отображения.

MediaTrackConstraints.suppressLocalAudioPlayback

Управляет тем, будет ли аудио, воспроизводимое в вкладке, продолжаться через локальные динамики пользователя при захвате вкладки, или будет подавлено. Значение true указывает на то, что оно будет подавлено.

MediaTrackSettings

MediaTrackSettings.cursor

Строка, указывающая, включает ли захватываемая в данный момент поверхность отображения курсор мыши, и если да, то виден ли он только во время движения мыши или всегда. Значение — одно из always, motion, или never.

MediaTrackSettings.displaySurface

Строка, указывающая тип поверхности отображения, который в данный момент захватывается. Значение — одно из browser, monitor, или window.

MediaTrackSettings.logicalSurface

Булево значение, которое равно true если захватываемое видео не соответствует напрямую отдельной области отображения на экране.

MediaTrackSettings.suppressLocalAudioPlayback

Булево значение, которое равно true если захватываемое аудио не воспроизводится через локальные динамики пользователя.

MediaTrackSupportedConstraints

MediaTrackSupportedConstraints.displaySurface

Булево значение, которое равно true если текущая среда поддерживает ограничение MediaTrackConstraints.displaySurface.

MediaTrackSupportedConstraints.logicalSurface

Булево значение, которое равно true если текущая среда поддерживает ограничение MediaTrackConstraints.logicalSurface.

MediaTrackSupportedConstraints.suppressLocalAudioPlayback

Булево значение, которое равно true если текущая среда поддерживает ограничение MediaTrackConstraints.suppressLocalAudioPlayback.

Проверка политики разрешений

Пользовательские агенты, поддерживающие Политику разрешений (либо с помощью HTTP-заголовка Permissions-Policy или атрибута <iframe> allow) могут указать желание использовать API захвата экрана с помощью директивы display-capture:

<iframe allow="display-capture" src="/some-other-document.html">…</iframe>

Список разрешенных по умолчанию — self, что позволяет любому контенту в той же области использовать API захвата экрана.

Спецификации

Спецификация
Захват экрана
# dom-mediadevices-getdisplaymedia

Совместимость с браузерами

Рабочий стол Мобильный телефон
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
Screen_Capture_API 72 79
17–79Доступен в качестве члена Navigator вместо MediaDevices.
66
33–66Начиная с Firefox 33, вы можете захватывать данные экрана, используя getUserMedia(), с ограничением video под названием mediaSource. До версии 52 использовался настраиваемый клиентом список разрешенных сайтов.
60 13
НетВ Chrome Android с 72 по 88 этот метод был доступен, но всегда завершался ошибкой NotAllowedError. См. баг 40418135.
НетВ Firefox Android с 66 по 79 этот метод был доступен, но всегда завершался ошибкой NotAllowedError.
НетВ Opera Android с 51 по 88 этот метод был доступен, но всегда завершался ошибкой NotAllowedError. См. баг 40418135.
Нет
НетВ Samsung Internet с 11.0 по 88 этот метод был доступен, но всегда завершался ошибкой NotAllowedError. См. баг 40418135.
НетВ WebView Android с 72 по 88 этот метод был доступен, но всегда завершался ошибкой NotAllowedError. См. баг 40418135.
audio_capture_support
74В Windows и ChromeOS можно захватить весь системный звук при совместном использовании целого экрана. В Linux и macOS можно захватить только звук вкладки.
79В Windows и ChromeOS можно захватить весь системный звук при совместном использовании целого экрана. В Linux и macOS можно захватить только звук вкладки.
Нет
62В Windows и ChromeOS можно захватить весь системный звук при совместном использовании целого экрана. В Linux и macOS можно захватить только звук вкладки.
Нет Нет Нет Нет Нет Нет Нет
controller_option 109 109 Нет 95 Нет Нет Нет Нет Нет Нет Нет
monitorTypeSurfaces_option
119Значение по умолчанию = include
119Значение по умолчанию = include
Нет
105Значение по умолчанию = include
Нет Нет Нет Нет Нет Нет Нет
systemAudio_option
105Значение по умолчанию = include
105Значение по умолчанию = include
Нет
91Значение по умолчанию = include
Нет Нет Нет Нет Нет Нет Нет

См. также

  • Использование API захвата экрана
  • MediaDevices.getDisplayMedia()

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/Screen_Capture_API

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API