שיפורים בשיתוף המסך ב-Chrome 109

פרנסואה בופורט
פרנסואה בופורט
אלעד אלון
אלעד אלון

אפליקציות אינטרנט כבר יכולות להשתמש ב-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(). לפרטים נוספים, אפשר לעיין ב-Bug 1381959.

אישורים

תמונה ראשית (Hero) של ברט ג'ורדן.

תודה על קריאת המאמר Rachel Andrew.