CaptureController: метод setFocusBehavior()
Ограниченная доступность
Эта функция не является базовой, так как она не работает в некоторых широко используемых браузерах.
Экспериментально: Это экспериментальная технология
Перед использованием в производстве внимательно проверьте таблицу совместимости с браузерами таблица совместимости с браузерами.
Безопасный контекст: Эта функция доступна только в безопасных контекстах (HTTPS) в некоторых или всех поддерживающих браузерах.
Метод setFocusBehavior() интерфейса CaptureController управляет тем, будет ли фокусироваться захваченный вклад или окно при выполнении связанного MediaDevices.getDisplayMedia() Promise, или фокус останется на вкладке с приложением, выполняющим захват.
Вы можете установить это поведение несколько раз до вызова MediaDevices.getDisplayMedia() или один раз сразу после разрешения его Promise. После этого поведение фокусировки считается окончательным и изменить его нельзя.
Синтаксис
setFocusBehavior(focusBehavior)
Параметры
focusBehavior-
Перечисление, которое описывает, должен ли пользовательский агент передать фокус на поверхность отображения захвата или сохранить фокус на приложении, выполняющем захват. Возможные значения —
focus-captured-surface(передача фокуса) иno-focus-change(сохранение фокуса на приложении).
Возвращаемое значение
None (undefined).
Исключения
-
InvalidStateErrorDOMException -
Выбрасывается, если:
- Поток захвата был остановлен.
- Пользователь выбрал совместное использование экрана (
displaySurfaceтипmonitor) вместо вкладкиbrowserилиwindow— вы не можете сфокусироваться на мониторе. В этом случае исключение выбрасывается после разрешенияMediaDevices.getDisplayMedia()Promise. - Прошло достаточно времени после того, как
MediaDevices.getDisplayMedia()Promiseзавершилось, что поведение фокусировки стало окончательным.
Примеры
// Create a new CaptureController instance
const controller = new CaptureController();
// Prompt the user to share a tab, window, or screen.
const stream = await navigator.mediaDevices.getDisplayMedia({ controller });
// Query the displaySurface value of the captured video track
const [track] = stream.getVideoTracks();
const displaySurface = track.getSettings().displaySurface;
if (displaySurface == "browser") {
// Focus the captured tab.
controller.setFocusBehavior("focus-captured-surface");
} else if (displaySurface == "window") {
// Do not move focus to the captured window.
// Keep the capturing page focused.
controller.setFocusBehavior("no-focus-change");
}
Спецификации
Совместимость с браузерами
| Рабочий стол | Мобильные | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
setFocusBehavior |
109 | 109 | Нет | 95 | Нет | Нет | Нет | Нет | Нет | Нет | Нет |
См. также
© 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/CaptureController/setFocusBehavior