Aplikacje internetowe mogą już używać interfejsu getDisplayMedia() do przechwytywania kart, okien lub ekranów jako MediaStream. Od wersji 109 Chrome możesz korzystać z tych ulepszeń:
- Po rozpoczęciu udostępniania ekranu warunkowe skupienie pozwala aplikacji do przechwytywania sterować tym, czy przeglądarka ma skupić się na przechwyczonej karcie lub oknie, czy też ma pozostać aktywna karta przechwytywania.
- Opcja
suppressLocalAudioPlaybackokreśla, czy dźwięk odtwarzany na karcie ma być odtwarzany przez głośniki użytkownika.
Warunkowe skupienie
Dzięki tej funkcji aplikacje internetowe mogą teraz kontrolować, czy przechwytywana karta lub okno będą aktywne w momencie rozpoczęcia przechwytywania, czy też strona, na której odbywa się przechwytywanie, ma pozostać aktywna.
const controller = new CaptureController();
// Prompt the user to share a tab, a window or a screen.
const stream =
await navigator.mediaDevices.getDisplayMedia({ controller });
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");
}
Więcej informacji znajdziesz w artykule Udoskonalona funkcja udostępniania ekranu dzięki trybowi warunkowego skupienia uwagi.
Blokowanie lokalnego odtwarzania dźwięku
Często zdarza się, że współpracownicy zbierają się w sali konferencyjnej, aby jeden z nich przeprowadził prezentację z laptopa na sali konferencyjnej z dedykowanym monitorem i głośnikami. Prezenter zazwyczaj wycisza swój laptop i używa głośników zewnętrznych, które są często głośniejsze. Dzięki temu dźwięk jest zsynchronizowany z obrazem. Ograniczenie dźwięku suppressLocalAudioPlayback pozwala zaoszczędzić czas. Gdy jest ustawiona na true, oznacza, że przeglądarka powinna przestać przekazywać dźwięk do lokalnych głośników po rozpoczęciu nagrywania. Domyślną wartością tego ograniczenia jest false.
// Prompt the user to share a tab, a window or a screen with audio.
// If successful, stop the captured audio from being played out over
// the local device's speakers.
const stream = await navigator.mediaDevices.getDisplayMedia({
audio: { suppressLocalAudioPlayback: true },
});
const [audioTrack] = stream.getAudioTracks();
const settings = audioTrack.getSettings();
console.log(settings.suppressLocalAudioPlayback); // true
W momencie pisania tego artykułu suppressLocalAudioPlayback nie działa z applyConstraints().
Zobacz błąd 1381959.
Podziękowania
Dziękujemy Rachel Andrew za sprawdzenie tego dokumentu.