Miglioramenti alla condivisione dello schermo in Chrome 109

Francesco Beaufort
François Beaufort
Elad Alon
Elad Alon

Le app web possono già utilizzare getDisplayMedia() per acquisire schede, finestre o schermate come MediaStream. A partire da Chrome 109, puoi sfruttare i seguenti miglioramenti:

  • Quando viene avviata la condivisione dello schermo, la funzionalità Messa a fuoco condizionale consente all'app web di acquisizione di controllare se il browser incentra la scheda o la finestra acquisita o se la scheda di acquisizione rimane attiva.
  • L'opzione suppressLocalAudioPlayback consente di controllare se l'audio riprodotto in una scheda viene riprodotto dagli altoparlanti locali dell'utente.

Concentrazione condizionale

Grazie a Messa a fuoco condizionale, le app web ora possono controllare se impostare lo stato attivo sulla scheda o sulla finestra acquisita all'inizio dell'acquisizione o se la pagina di acquisizione deve rimanere attiva.

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

Per saperne di più, consulta l'articolo Condivisione schermo migliore con messa a fuoco condizionale.

Elimina riproduzione audio locale

È normale che i colleghi si riuniscano in una sala per fare in modo che uno di loro presenti dal laptop una soluzione per conferenze in sala dotata di monitor e altoparlanti dedicati. Il presentatore in genere disattiva l'audio del proprio laptop e utilizza altoparlanti esterni, che sono spesso più potenti; ciò garantisce inoltre che l'audio sia sincronizzato con il video. Il vincolo audio suppressLocalAudioPlayback consente di risparmiare tempo in questo caso. Se impostato su true, significa che il browser non deve più trasmettere l'audio agli altoparlanti locali all'avvio dell'acquisizione. Il valore predefinito di questo vincolo è 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

Al momento della scrittura, suppressLocalAudioPlayback non funziona ancora con applyConstraints(). Vedi Bug 1381959.

Ringraziamenti

Immagine promozionale di Brett Jordan.

Grazie a Rachel Andrew per aver letto questo articolo.