بهبود اشتراک‌گذاری صفحه در کروم 109

فرانسوا بوفور
François Beaufort

برنامه‌های وب می‌توانند از getDisplayMedia() برای گرفتن برگه‌ها، پنجره‌ها یا صفحه‌های نمایش به‌عنوان MediaStream استفاده کنند. از Chrome 109، می‌توانید از پیشرفت‌های زیر استفاده کنید:

  • هنگامی که اشتراک‌گذاری صفحه شروع می‌شود، Conditional Focus به برنامه وب عکس‌برداری اجازه می‌دهد تا کنترل کند مرورگر روی برگه یا پنجره عکس‌برداری شده متمرکز شود یا اینکه برگه عکس‌برداری فعال باقی بماند.
  • گزینه suppressLocalAudioPlayback کنترل می کند که آیا صدای پخش شده در یک برگه از بلندگوهای محلی کاربر پخش شود یا خیر.

تمرکز مشروط

با استفاده از Conditional Focus، برنامه‌های وب اکنون می‌توانند کنترل کنند که آیا هنگام شروع عکسبرداری، برگه یا پنجره ضبط‌شده فوکوس می‌شود یا اینکه صفحه عکس‌برداری باید در فوکوس باقی بماند.

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 را ببینید.

قدردانی

با تشکر از راشل اندرو برای بررسی این سند.