تحسينات على مشاركة الشاشة في الإصدار 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(). راجع خطأ 1381959.

شكر وتقدير

صورة رئيسية من تصوير بريت جوردان

شكرًا راشيل أندرو على مراجعة هذه المقالة.