ब्यौरा
टैब की मीडिया स्ट्रीम से इंटरैक्ट करने के लिए, chrome.tabCapture
एपीआई का इस्तेमाल करें.
अनुमतियां
tabCapture
खास जानकारी
chrome.tabCapture 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
एपीआई को इस्तेमाल करने के तरीके के बारे में ज़्यादा जानने के लिए, ऑडियो रिकॉर्डिंग और स्क्रीन कैप्चर देखें. इस इमेज में, इस्तेमाल के कई सामान्य उदाहरणों को हल करने के लिए, tabCapture
और इससे जुड़े एपीआई को इस्तेमाल करने का तरीका बताया गया है.
टाइप
CaptureInfo
प्रॉपर्टी
-
फ़ुलस्क्रीन
boolean
कैप्चर किए जा रहे टैब का कोई एलिमेंट, फ़ुलस्क्रीन मोड में है या नहीं.
-
स्थिति
टैब का कैप्चर स्टेटस.
-
tabId
नंबर
उस टैब का आईडी जिसका स्टेटस बदला गया.
CaptureOptions
प्रॉपर्टी
-
ऑडियो ट्रैक अपलोड करने की सुविधा इस्तेमाल करें
बूलियन ज़रूरी नहीं
-
audioConstraints
MediaStreamConstraint ज़रूरी नहीं है
-
वीडियो
बूलियन ज़रूरी नहीं
-
videoConstraints
MediaStreamConstraint ज़रूरी नहीं है
GetMediaStreamOptions
प्रॉपर्टी
-
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.tabCapture.getMediaStreamId(
options?: GetMediaStreamOptions,
callback?: function,
)
यह टारगेट टैब को कैप्चर करने के लिए स्ट्रीम आईडी बनाता है. यह chrome.tabCapture.capture() की तरह ही होता है. हालांकि, यह मीडिया स्ट्रीम के बजाय, मीडिया स्ट्रीम आईडी को उपभोक्ता टैब में दिखाता है.
पैरामीटर
-
विकल्प
GetMediaStreamOptions ज़रूरी नहीं
-
कॉलबैक
फ़ंक्शन ज़रूरी नहीं
callback
पैरामीटर ऐसा दिखता है:(streamId: string) => void
-
streamId
स्ट्रिंग
-
रिटर्न
-
प्रॉमिस<string>
Chrome 116 और इसके बाद के वर्शनप्रॉमिस सिर्फ़ मेनिफ़ेस्ट V3 और उसके बाद के वर्शन पर काम करता है. अन्य प्लैटफ़ॉर्म के लिए कॉलबैक का इस्तेमाल करना ज़रूरी है.
इवेंट
onStatusChanged
chrome.tabCapture.onStatusChanged.addListener(
callback: function,
)
टैब की कैप्चर स्थिति बदलने पर इवेंट सक्रिय होता है. इससे एक्सटेंशन लेखक, टैब के कैप्चर स्टेटस को ट्रैक कर सकते हैं, ताकि पेज ऐक्शन जैसे यूज़र इंटरफ़ेस (यूआई) एलिमेंट को सिंक रखा जा सके.
पैरामीटर
-
कॉलबैक
फ़ंक्शन
callback
पैरामीटर ऐसा दिखता है:(info: CaptureInfo) => void
-
जानकारी
-