chrome.tabCapture

ब्यौरा

टैब मीडिया स्ट्रीम से इंटरैक्ट करने के लिए, chrome.tabCapture एपीआई का इस्तेमाल करें.

अनुमतियां

tabCapture

सिद्धांत और उनका इस्तेमाल

chrome.tab Capture API की मदद से, आपको 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 और उसके बाद के वर्शन में, आईडी का इस्तेमाल ऐसे किसी भी फ़्रेम में किया जा सकता है जिसमें का एक जैसा सुरक्षा स्रोत है. इसका मतलब है कि आपको जिस स्ट्रीम आईडी को का इस्तेमाल ऑफ़स्क्रीन दस्तावेज़ में किया जा सकता है.

Chrome 116 से पहले, जब consumerTabId में जानकारी नहीं दी जाती थी, तब स्ट्रीम आईडी सिर्फ़ दोनों वर्शन के लिए होता था कॉलर की सुरक्षा का ऑरिजिन, रेंडर प्रोसेस, और फ़्रेम रेंडर करना.

ज़्यादा जानें

chrome.tabCapture API का इस्तेमाल करने के तरीके के बारे में ज़्यादा जानने के लिए, यह देखें ऑडियो रिकॉर्डिंग और स्क्रीन कैप्चर. इससे पता चलता है कि tabCapture और उससे जुड़े एपीआई का इस्तेमाल करें.

टाइप

CaptureInfo

प्रॉपर्टी

  • फ़ुलस्क्रीन

    बूलियन

    कैप्चर किए जा रहे टैब में मौजूद कोई एलिमेंट, फ़ुलस्क्रीन मोड में है या नहीं.

  • स्थिति

    टैब की कैप्चर स्थिति.

  • tabId

    संख्या

    उस टैब का आईडी जिसकी स्थिति बदल गई है.

CaptureOptions

प्रॉपर्टी

  • ऑडियो

    बूलियन ज़रूरी नहीं

  • audioConstraints

    MediaStreamConstraint ज़रूरी नहीं

  • वीडियो

    बूलियन ज़रूरी नहीं

  • videoConstraints

    MediaStreamConstraint ज़रूरी नहीं

GetMediaStreamOptions

Chrome 71 और उसके बाद वाले वर्शन के लिए

प्रॉपर्टी

  • consumerTabId

    नंबर वैकल्पिक

    उस टैब का वैकल्पिक टैब आईडी जो स्ट्रीम का इस्तेमाल करने के लिए, बाद में getUserMedia() शुरू करेगा. अगर इस सेटिंग की जानकारी नहीं दी गई है, तो कॉल करने के एक्सटेंशन की मदद से ही स्ट्रीम को इस्तेमाल किया जा सकता है. स्ट्रीम का इस्तेमाल, दिए गए टैब में मौजूद सिर्फ़ उन फ़्रेम से किया जा सकता है जिनका सुरक्षा ऑरिजिन, कंसर्बर टैब के ऑरिजिन से मेल खाता है. टैब का ऑरिजिन एक सुरक्षित ऑरिजिन होना चाहिए, उदाहरण के लिए एचटीटीपीएस.

  • targetTabId

    नंबर वैकल्पिक

    कैप्चर किए जाने वाले टैब का वैकल्पिक टैब आईडी. अगर इसके बारे में नहीं बताया गया है, तो मौजूदा ऐक्टिव टैब को चुना जाएगा. टारगेट टैब के तौर पर सिर्फ़ उन टैब का इस्तेमाल किया जा सकता है जिनके लिए एक्सटेंशन को activeTab की अनुमति दी गई है.

MediaStreamConstraint

प्रॉपर्टी

  • ज़रूरी है

    ऑब्जेक्ट

  • ज़रूरी नहीं

    ऑब्जेक्ट ज़रूरी नहीं

TabCaptureState

Enum

"मंज़ूरी बाकी"

"चालू"

"बंद हो गया"

"गड़बड़ी"

तरीके

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[]>

    Chrome 116 और उसके बाद वाले वर्शन

    मेनिफ़ेस्ट V3 और उसके बाद के वर्शन में प्रॉमिस काम करते हैं. हालांकि, कॉलबैक की सुविधा इन मामलों में दी जाती है पुराने सिस्टम के साथ काम करने की सुविधा. एक ही फ़ंक्शन कॉल में दोनों का इस्तेमाल नहीं किया जा सकता. कॉन्टेंट बनाने प्रॉमिस उसी टाइप के साथ ठीक होता है जिसे कॉलबैक में पास किया जाता है.

getMediaStreamId()

प्रॉमिस Chrome 71 और उसके बाद वाले वर्शन के लिए
chrome.tabCapture.getMediaStreamId(
  options?: GetMediaStreamOptions,
  callback?: function,
)

टारगेट टैब को कैप्चर करने के लिए, स्ट्रीम आईडी बनाता है. यह chrome.tab गड़बड़ियां.capture() तरीके की तरह है, लेकिन यह उपभोक्ता टैब को मीडिया स्ट्रीम के बजाय, मीडिया स्ट्रीम आईडी दिखाता है.

पैरामीटर

  • विकल्प

    GetMediaStreamOptions ज़रूरी नहीं

  • कॉलबैक

    फ़ंक्शन वैकल्पिक

    callback पैरामीटर ऐसा दिखता है:

    (streamId: string) => void

    • streamId

      स्ट्रिंग

रिटर्न

  • प्रॉमिस<string>

    Chrome 116 और उसके बाद वाले वर्शन

    मेनिफ़ेस्ट V3 और उसके बाद के वर्शन में प्रॉमिस काम करते हैं. हालांकि, कॉलबैक की सुविधा इन मामलों में दी जाती है पुराने सिस्टम के साथ काम करने की सुविधा. एक ही फ़ंक्शन कॉल में दोनों का इस्तेमाल नहीं किया जा सकता. कॉन्टेंट बनाने प्रॉमिस उसी टाइप के साथ ठीक होता है जिसे कॉलबैक में पास किया जाता है.

इवेंट

onStatusChanged

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

टैब की कैप्चर स्थिति बदलने पर इवेंट सक्रिय होता है. इससे एक्सटेंशन ऑथर, टैब के कैप्चर स्टेटस को ट्रैक कर सकते हैं, ताकि पेज पर की जाने वाली कार्रवाइयों जैसे यूज़र इंटरफ़ेस (यूआई) एलिमेंट को सिंक में रखा जा सके.

पैरामीटर

  • कॉलबैक

    फ़ंक्शन

    callback पैरामीटर ऐसा दिखता है:

    (info: CaptureInfo) => void