chrome.tabCapture

الوصف

يمكنك استخدام chrome.tabCapture API للتفاعل مع ساحة مشاركات الوسائط لعلامات التبويب.

الأذونات

tabCapture

المفاهيم والاستخدام

تتيح لك واجهة برمجة التطبيقات chrome.tabCapture الوصول إلى MediaStream يحتوي على فيديو و الصوت في علامة التبويب الحالية. ولا يمكن استدعاءها إلا بعد استدعاء المستخدم للإضافة، مثل النقر على زر الإجراء الخاص بالإضافة. وهذا يشبه سلوك إذن "activeTab".

الحفاظ على صوت النظام

عند الحصول على MediaStream لإحدى علامات التبويب، لن يتم تشغيل الصوت في علامة التبويب هذه بعد ذلك. للمستخدم. يشبه ذلك سلوك الدالة getDisplayMedia() في حال تم ضبط علامة suppressLocalAudioPlayback على "صحيح".

لمواصلة تشغيل الصوت للمستخدم، يمكنك استخدام ما يلي:

const output = new AudioContext();
const source = output.createMediaStreamSource(stream);
source.connect(output.destination);

سيؤدي هذا الإجراء إلى إنشاء AudioContext جديد وربط الصوت في علامة التبويب MediaStream بالجهاز التلقائي. الوجهة.

أرقام تعريف مصادر البيانات

سيؤدي الاتصال بالرقم chrome.tabCapture.getMediaStreamId() إلى عرض معرّف مصدر البيانات. إلى لاحقًا للوصول إلى MediaStream من المعرّف، استخدِم ما يلي:

navigator.mediaDevices.getUserMedia({
  audio: {
    mandatory: {
      chromeMediaSource: "tab",
      chromeMediaSourceId: id,
    },
  },
  video: {
    mandatory: {
      chromeMediaSource: "tab",
      chromeMediaSourceId: id,
    },
  },
});

قيود الاستخدام

بعد الاتصال getMediaStreamId()، هناك قيود على أماكن معرّف مصدر البيانات المعروض:

  • إذا تم تحديد consumerTabId، يمكن استخدام المعرّف من خلال استدعاء getUserMedia() في أي إطار في علامة تبويب لها مصدر الأمان نفسه.
  • وفي حال عدم تحديد ذلك، بدءًا من الإصدار Chrome 116، يمكن استخدام رقم التعريف في أي إطار يتضمّن مصدر الأمان نفسه في عملية العرض نفسها للمُتصِل. وهذا يعني أنّ معرّف مصدر البيانات الذي تم الحصول عليه في مستند خارج الشاشة يمكن استخدامه في مشغّل الخدمات.

قبل الإصدار 116 من Chrome، عندما لم يتم تحديد consumerTabId، كان رقم تعريف مصدر البيانات يقتصر على كليهما. مصدر الأمان وعملية عرض وعرض المتصل.

مزيد من المعلومات

لمزيد من المعلومات حول كيفية استخدام واجهة برمجة تطبيقات chrome.tabCapture، يمكنك الاطّلاع على تسجيل الصوت والتقاط الشاشة: يوضح هذا كيفية استخدام tabCapture وواجهات برمجة التطبيقات ذات الصلة لحل عدد من حالات الاستخدام الشائعة.

الأنواع

CaptureInfo

أماكن إقامة

  • ملء الشاشة

    منطقي

    ما إذا كان أحد العناصر في علامة التبويب التي يتم التقاطها في وضع ملء الشاشة.

  • حالة الالتقاط الجديدة لعلامة التبويب.

  • tabId

    الرقم

    رقم تعريف علامة التبويب التي تم تغيير حالتها.

CaptureOptions

أماكن إقامة

  • بعدّة لغات"

    قيمة منطقية اختيارية

  • audioConstraints

    MediaStreamConstraint اختيارية

  • فيديو

    قيمة منطقية اختيارية

  • videoConstraints

    MediaStreamConstraint اختيارية

GetMediaStreamOptions

الإصدار 71 من Chrome أو الإصدارات الأحدث

أماكن إقامة

  • consumerTabId

    الرقم اختياري

    رقم تعريف علامة تبويب اختياري لعلامة التبويب التي ستستدعي لاحقًا getUserMedia() لاستهلاك ساحة المشاركات. في حال عدم تحديده، لا يمكن استخدام البث الناتج إلا من خلال إضافة الاتصال. لا يمكن استخدام البث إلا من خلال الإطارات في علامة التبويب المحدّدة التي يتطابق أصل أمانها مع مصدر علامة التبويب "مستهلك". يجب أن يكون أصل علامة التبويب مصدرًا آمنًا. HTTPS.

  • targetTabId

    الرقم اختياري

    معرّف علامة التبويب الاختياري لعلامة التبويب التي سيتم تسجيلها. إذا لم يتم تحديدها، سيتم اختيار علامة التبويب النشطة الحالية. يمكن فقط استخدام علامات التبويب المستهدَفة في حال منح الإضافة إذن activeTab.

MediaStreamConstraint

أماكن إقامة

  • إلزامي

    كائن

  • اختياري

    الكائن اختياري

TabCaptureState

Enum

"في انتظار المراجعة"

"نشط"

"stopped"

"خطأ"

الطُرق

capture()

واجهة التطبيق فقط
chrome.tabCapture.capture(
  options: CaptureOptions,
  callback: function,
)

يلتقط هذا الزر المنطقة المرئية من علامة التبويب النشطة حاليًا. لا يمكن بدء الالتقاط إلا من علامة التبويب النشطة حاليًا بعد استدعاء الإضافة، بالطريقة نفسها التي تعمل بها علامة activeTab. ويتم الاحتفاظ بالالتقاط خلال عمليات التنقل في الصفحة ضمن علامة التبويب، ويتوقف عند إغلاق علامة التبويب أو إغلاق بث الوسائط بواسطة الإضافة.

المعلمات

  • الخيارات

    تتيح هذه السياسة ضبط بث الوسائط الذي تم إرجاعه.

  • رد الاتصال

    دالة

    تظهر المَعلمة callback على النحو التالي:

    (stream: LocalMediaStream) => void

    • البث

      LocalMediaStream

getCapturedTabs()

وعود
chrome.tabCapture.getCapturedTabs(
  callback?: function,
)

لعرض قائمة بعلامات التبويب التي طلبت التقاط الصور أو يتم تسجيلها، أي الحالة != متوقفة والحالة != الخطأ. ويسمح هذا للإضافات بإبلاغ المستخدم بوجود عملية التقاط حالية لعلامات تبويب قد تمنع التقاط علامة تبويب جديدة (أو لمنع الطلبات المتكررة لعلامة التبويب نفسها).

المعلمات

  • رد الاتصال

    الدالة اختيارية

    تظهر المَعلمة callback على النحو التالي:

    (result: CaptureInfo[]) => void

المرتجعات

  • Promise<CaptureInfo[]>

    الإصدار 116 من Chrome أو الإصدارات الأحدث

    تتوفّر الوعود في الإصدار Manifest V3 والإصدارات الأحدث، ولكن يتم توفير معاودة الاتصال. التوافق مع الأنظمة القديمة. لا يمكنك استخدام كلتيهما في نفس استدعاء الدالة. تشير رسالة الأشكال البيانية يتم حل الوعد بنفس النوع الذي يتم إرساله إلى معاودة الاتصال.

getMediaStreamId()

وعود الإصدار 71 من Chrome أو الإصدارات الأحدث
chrome.tabCapture.getMediaStreamId(
  options?: GetMediaStreamOptions,
  callback?: function,
)

يتم إنشاء رقم تعريف مصدر بيانات لتسجيل علامة التبويب المستهدَفة. مماثلة لطريقة chrome.tabCapture.capture()، ولكنها تعرض رقم تعريف بث وسائط، بدلاً من بث وسائط، إلى علامة تبويب المستهلك.

المعلمات

  • الخيارات

    GetMediaStreamOptions اختياري

  • رد الاتصال

    الدالة اختيارية

    تظهر المَعلمة callback على النحو التالي:

    (streamId: string) => void

    • streamId

      سلسلة

المرتجعات

  • وعود<string>

    الإصدار 116 من Chrome أو الإصدارات الأحدث

    تتوفّر الوعود في الإصدار Manifest V3 والإصدارات الأحدث، ولكن يتم توفير معاودة الاتصال. التوافق مع الأنظمة القديمة. لا يمكنك استخدام كلتيهما في نفس استدعاء الدالة. تشير رسالة الأشكال البيانية يتم حل الوعد بنفس النوع الذي يتم إرساله إلى معاودة الاتصال.

فعاليات

onStatusChanged

chrome.tabCapture.onStatusChanged.addListener(
  callback: function,
)

يتم تنشيط الحدث عند تغيُّر حالة الالتقاط لإحدى علامات التبويب. ويتيح ذلك لمؤلفي الإضافات تتبُّع حالة التقاط علامات التبويب للحفاظ على مزامنة عناصر واجهة المستخدم، مثل إجراءات الصفحة.

المعلمات

  • رد الاتصال

    دالة

    تظهر المَعلمة callback على النحو التالي:

    (info: CaptureInfo) => void