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.