Améliorations apportées au partage d'écran dans Chrome 109

François Beaufort
François Beaufort

Les applications Web peuvent déjà utiliser getDisplayMedia() pour capturer des onglets, des fenêtres ou des écrans en tant que MediaStream. À partir de Chrome 109, vous pouvez profiter des améliorations suivantes:

  • Lorsque le partage d'écran commence, la fonctionnalité Focus conditionnel permet à l'application Web de capture de contrôler si le navigateur met en surbrillance l'onglet ou la fenêtre capturés, ou si l'onglet de capture reste actif.
  • L'option suppressLocalAudioPlayback détermine si le contenu audio lu dans un onglet doit être lu par les enceintes locales de l'utilisateur.

Mise au point conditionnelle

Grâce au focus conditionnel, les applications Web peuvent désormais contrôler si l'onglet ou la fenêtre capturés seront actifs au début de la capture, ou si la page de capture doit rester active.

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");
}

Pour en savoir plus, consultez Mieux partager l'écran avec la mise au point conditionnelle.

Supprimer la lecture audio locale

Il est courant que les collègues se retrouvent dans une salle pour que l'un d'entre eux effectue une présentation depuis son ordinateur portable vers une solution de conférence en salle équipée d'un écran et de haut-parleurs dédiés. Le présentateur coupe généralement le son de son propre ordinateur portable et utilise les haut-parleurs externes, qui sont souvent plus puissants. Cela permet également de synchroniser l'audio avec la vidéo. La contrainte audio suppressLocalAudioPlayback vous fait gagner du temps ici. Si ce paramètre est défini sur true, il indique que le navigateur doit arrêter de transmettre l'audio aux enceintes locales lorsque la capture commence. La valeur par défaut de cette contrainte est 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

Au moment de la rédaction de cet article, suppressLocalAudioPlayback ne fonctionne pas avec applyConstraints(). Consultez le bug 1381959.

Remerciements

Merci à Rachel Andrew d'avoir examiné ce document.