Aplikasi web sudah dapat menggunakan getDisplayMedia()
untuk merekam tab, jendela, atau
layar sebagai MediaStream. Mulai Chrome 109, Anda dapat memanfaatkan
peningkatan berikut:
- Saat berbagi layar dimulai, Fokus Bersyarat memungkinkan aplikasi web perekaman untuk mengontrol apakah browser memfokuskan tab atau jendela yang direkam, atau apakah tab perekaman tetap aktif.
- Opsi
suppressLocalAudioPlayback
mengontrol apakah audio yang diputar di tab akan diputar dari speaker lokal pengguna.
Fokus Bersyarat
Dengan menggunakan Fokus Bersyarat, aplikasi web kini dapat mengontrol apakah tab atau jendela yang diambil akan difokuskan saat pengambilan dimulai, atau apakah halaman pengambilan harus tetap difokuskan.
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");
}
Lihat Berbagi layar yang lebih baik dengan Fokus Bersyarat untuk mengetahui informasi selengkapnya.
Menyembunyikan pemutaran audio lokal
Rekan kerja biasanya berkumpul di satu ruangan sehingga salah satu dari mereka dapat melakukan presentasi dari laptop ke solusi konferensi dalam ruangan dengan monitor dan speaker khusus. Presentator biasanya akan membisukan laptopnya sendiri, dan menggunakan speaker eksternal yang sering kali lebih keras; hal ini juga memastikan audio sinkron dengan video. Batasan audio suppressLocalAudioPlayback
menghemat waktu di sini. Jika disetel ke true
, ini menunjukkan bahwa browser harus berhenti meneruskan audio ke speaker lokal saat perekaman dimulai. Nilai default untuk batasan ini adalah 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
Pada saat penulisan, suppressLocalAudioPlayback
tidak berfungsi dengan
applyConstraints()
.
Lihat bug 1381959.
Ucapan terima kasih
Terima kasih kepada Rachel Andrew yang telah meninjau dokumen ini.