الوصف
يمكنك استخدام 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
أماكن إقامة
-
ملء الشاشة
منطقي
ما إذا كان أحد العناصر في علامة التبويب التي يتم التقاطها في وضع ملء الشاشة.
-
status
حالة الالتقاط الجديدة لعلامة التبويب.
-
tabId
الرقم
رقم تعريف علامة التبويب التي تم تغيير حالتها.
CaptureOptions
أماكن إقامة
-
بعدّة لغات"
قيمة منطقية اختيارية
-
audioConstraints
MediaStreamConstraint اختيارية
-
فيديو
قيمة منطقية اختيارية
-
videoConstraints
MediaStreamConstraint اختيارية
GetMediaStreamOptions
أماكن إقامة
-
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()
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
-
معلومات
-