Miglioramenti alla condivisione dello schermo in Chrome 109

François Beaufort
François Beaufort

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

  • Quando viene avviata la condivisione schermo, l'opzione Attiva/disattiva consente all'app web di acquisire il controllo sull'eventuale attivazione della scheda o della finestra acquisita o sulla possibilità che la scheda di acquisizione rimanga attiva.
  • L'opzione suppressLocalAudioPlayback controlla se l'audio riprodotto in una scheda viene riprodotto dagli altoparlanti locali dell'utente.

Messa a fuoco condizionale

Grazie all'impostazione Messa a fuoco condizionale, le app web ora possono controllare se lo stato attivo della scheda o della finestra acquisita viene attivato all'avvio dell'acquisizione o se quest'ultima 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 ulteriori informazioni, consulta Migliorare la condivisione schermo con la funzionalità Concentrazione condizionale.

Eliminare la riproduzione audio locale

È normale che i colleghi si riuniscano in una stanza in modo che uno di loro possa fare una presentazione dal proprio laptop a una soluzione per conferenze in sala con monitor e altoparlanti dedicati. In genere, il presentatore disattiva l'audio del proprio laptop e utilizza gli altoparlanti esterni, che sono spesso più potenti. In questo modo, l'audio sarà sincronizzato con il video. Il vincolo audio suppressLocalAudioPlayback consente di risparmiare tempo. Se impostato su true, indica che il browser deve interrompere il trasferimento dell'audio agli altoparlanti locali all'avvio della registrazione. Il valore predefinito per 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 stesura di questo articolo, suppressLocalAudioPlayback non funziona con applyConstraints(). Vedi il bug 1381959.

Ringraziamenti

Grazie a Rachel Andrew per aver esaminato questo documento.