Verbeteringen voor het delen van schermen in Chrome 109

François Beaufort
François Beaufort

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 Voorwaardelijke focus ervoor dat de vastleggende webapp bepaalt of de browser het vastgelegde tabblad of venster scherpstelt, 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 nog niet met applyConstraints() . Zie bug 1381959 .

Dankbetuigingen

Heldenafbeelding door Brett Jordan .

Met dank aan Rachel Andrew voor het beoordelen van dit artikel.