Ulepszenia udostępniania ekranu w Chrome 109

François Beaufort
François Beaufort

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 suppressLocalAudioPlayback okreś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 Udostępnianie ekranu z wykorzystaniem funkcji Conditional Focus.

Wyłączanie 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.