Webapps kunnen getDisplayMedia()
al gebruiken om tabbladen, vensters of schermen vast te leggen als MediaStream . Vanaf Chrome 109 kunt u profiteren van de volgende verbeteringen:
- Wanneer het delen van het scherm begint, zorgt de voorwaardelijke focus ervoor dat de vastgelegde webapp bepaalt of de browser de focus op het vastgelegde tabblad of venster zet, of dat het vastgelegde tabblad actief blijft.
- De optie
suppressLocalAudioPlayback
bepaalt of de audio die op een tabblad wordt afgespeeld, via de lokale luidsprekers van de gebruiker wordt afgespeeld.
Voorwaardelijke focus
Met behulp van Voorwaardelijke Focus kunnen webapps nu bepalen of het vastgelegde tabblad of venster de focus krijgt wanneer het vastleggen begint, of dat de vastgelegde pagina in focus moet blijven.
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");
}
Bekijk Beter scherm delen met voorwaardelijke focus voor meer informatie.
Onderdruk het afspelen van lokale audio
Het is gebruikelijk dat collega's in een ruimte samenkomen, zodat een van hen vanaf zijn laptop een presentatie geeft in een vergaderoplossing in de ruimte met een speciale monitor en luidsprekers. De presentator dempt doorgaans zijn eigen laptop en gebruikt de externe luidsprekers, die vaak luider zijn; dit zorgt er ook voor dat audio synchroon loopt met video. De audiobeperking suppressLocalAudioPlayback
bespaart hier tijd. Wanneer ingesteld op true
, geeft dit aan dat de browser moet stoppen met het doorgeven van audio aan de lokale luidsprekers wanneer het vastleggen begint. De standaardwaarde voor deze beperking is 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
Op het moment van schrijven werkt suppressLocalAudioPlayback
niet met applyConstraints()
. Zie bug 1381959 .
Dankbetuigingen
Met dank aan Rachel Andrew voor het beoordelen van dit document.