برنامههای وب میتوانند از 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 را ببینید.
قدردانی
با تشکر از راشل اندرو برای بررسی این سند.