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 fokus warunkowy umożliwia przechwytywaniem aplikacji internetowej, aby kontrolować, czy przeglądarka ma aktywować przechwyconą kartę lub okno albo czy ma ona pozostać aktywna.
- Opcja
suppressLocalAudioPlayback
określa, czy dźwięk odtwarzany na karcie ma być odtwarzany przez głośniki użytkownika.
Ostrość warunkowa
Dzięki fokusowi warunkowemu aplikacje internetowe mogą teraz kontrolować, czy przechwycona karta lub okno mają być zaznaczone w momencie rozpoczęcia przechwytywania oraz czy strona przechwytywania powinna 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 trybu warunkowego.
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 chwili pisania wiadomości suppressLocalAudioPlayback
nie działa z narzędziem applyConstraints()
.
Zobacz błąd 1381959.
Podziękowania
Dziękujemy Rachel Andrew za sprawdzenie tego dokumentu.