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

François Beaufort
François Beaufort
Elad Alon
Elad Alon

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

  • Lorsque le partage d'écran démarre, la mise au point conditionnelle permet à l'application Web de capture de contrôler si le navigateur sélectionne 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 d'un onglet est diffusé sur les enceintes locales de l'utilisateur.

Focus conditionnel

Grâce à la mise au point conditionnelle, les applications Web peuvent désormais contrôler si l'onglet ou la fenêtre capturés doit être sélectionné 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 Améliorer le partage d'écran avec la mise au point conditionnelle.

Supprimer la lecture audio locale

Les collègues se réunissent souvent dans une salle afin que l'un d'eux présente son écran à partir de son ordinateur portable vers une solution de conférence en présentiel dotée d'un écran dédié et de haut-parleurs. Le présentateur coupe généralement le son de son ordinateur portable et utilise les haut-parleurs externes, qui sont souvent plus puissants. Cela garantit également que le son est synchronisé avec la vidéo. La contrainte audio suppressLocalAudioPlayback permet de gagner du temps. Si ce paramètre est défini sur true, le navigateur doit arrêter de transmettre l'audio aux locuteurs locaux 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 ce document, suppressLocalAudioPlayback n'est pas encore compatible avec applyConstraints(). Consultez le Bug 1381959.

Remerciements

Image principale créée par Brett Jordan.

Merci à Rachel Andrew d'avoir consulté cet article.