אפליקציות אינטרנט כבר יכולות להשתמש ב-getDisplayMedia()
כדי לצלם כרטיסיות, חלונות או מסכים כ-MediaStream. מגרסה 109 של Chrome, תוכלו ליהנות מהשיפורים הבאים:
- כששיתוף המסך מתחיל, התכונה מיקוד מותנה מאפשרת לאפליקציית האינטרנט שמצלמת את המסך לקבוע אם הדפדפן יתמקד בכרטיסייה או בחלון שצולמו, או אם הכרטיסייה שמצלמת את המסך תישאר פעילה.
- האפשרות
suppressLocalAudioPlayback
קובעת אם האודיו שמופעל בכרטיסייה יושמע מהרמקולים המקומיים של המשתמש.
התמקדות מותנית
בעזרת המיקוד המותנה, אפליקציות אינטרנט יכולות עכשיו לקבוע אם הכרטיסייה או החלון שרוצים לצלם יהיו מוגדרים כמיקוד כשהצילום יתחיל, או אם הדף שרוצים לצלם יישאר ממוקד.
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");
}
מידע נוסף זמין במאמר שיתוף מסך משופר באמצעות התמקדות מותנית.
השבתת ההפעלה של אודיו מקומי
לעתים קרובות, עמיתים נפגשים בחדר כדי שאחד מהם יוכל להציג מהמחשב הנייד לפתרון לשיחות ועידה בחדר עם מסך ורמקול ייעודיים. בדרך כלל המגישים משביתים את המחשב הנייד שלהם ומשתמשים ברמקולים החיצוניים, שהקול שלהם בדרך כלל חזק יותר. כך גם מובטח שהאודיו מסונכרן עם הווידאו. אילוץ האודיו suppressLocalAudioPlayback
חוסך זמן כאן. כשהערך מוגדר כ-true
, המשמעות היא שהדפדפן צריך להפסיק להעביר אודיו לרמקולים המקומיים כשהצילום מתחיל. ערך ברירת המחדל של האילוץ הזה הוא 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
נכון למועד כתיבת המאמר, suppressLocalAudioPlayback
לא פועל עם applyConstraints()
.
באג 1381959
תודות
תודה ל-Rachel Andrew על בדיקת המסמך הזה.