Google is committed to advancing racial equity for Black communities. See how.
इस पेज का अनुवाद Cloud Translation API से किया गया है.
Switch to English

मीडिया पर कब्जा और अड़चनें

WebRTC का मीडिया हिस्सा कवर करता है कि कैसे वीडियो और ऑडियो कैप्चर करने में सक्षम हार्डवेयर का उपयोग किया जाए, जैसे कि कैमरा और माइक्रोफोन, साथ ही साथ मीडिया स्ट्रीम कैसे काम करते हैं। यह डिस्प्ले मीडिया को भी कवर करता है, जो कि एक एप्लिकेशन स्क्रीन कैप्चरिंग कैसे कर सकता है।

मीडिया उपकरण

सभी कैमरे और माइक्रोफोन जो ब्राउज़र द्वारा समर्थित होते हैं, उन्हें नेविगेट और प्रबंधित navigator.mediaDevices माध्यम से किया जाता है। एप्लिकेशन कनेक्ट किए गए उपकरणों की वर्तमान सूची को पुनः प्राप्त कर सकते हैं और परिवर्तनों के लिए भी सुन सकते हैं, क्योंकि कई कैमरा और माइक्रोफ़ोन यूएसबी के माध्यम से कनेक्ट होते हैं और एप्लिकेशन के जीवनचक्र के दौरान कनेक्ट और डिस्कनेक्ट हो सकते हैं। चूंकि मीडिया डिवाइस की स्थिति किसी भी समय बदल सकती है, इसलिए यह अनुशंसा की जाती है कि परिवर्तनों को ठीक से संभालने के लिए डिवाइस परिवर्तनों के लिए आवेदन रजिस्टर करें।

प्रतिबन्ध

मीडिया उपकरणों को एक्सेस करते समय, यथासंभव विस्तृत बाधाओं को प्रदान करने के लिए यह एक अच्छा अभ्यास है। हालांकि एक साधारण बाधा के साथ डिफ़ॉल्ट कैमरा और माइक्रोफ़ोन खोलना संभव है, यह एक मीडिया स्ट्रीम प्रदान कर सकता है जो एप्लिकेशन के लिए सबसे इष्टतम से दूर है।

विशिष्ट बाधाओं को MediaTrackConstraint ऑब्जेक्ट में, एक ऑडियो के लिए और एक वीडियो के लिए परिभाषित किया गया है। इस ऑब्जेक्ट में विशेषताएँ ConstraintLong , ConstraintBoolean , ConstraintDouble या ConstraintDOMString । ये या तो एक विशिष्ट मूल्य हो सकते हैं (जैसे, एक संख्या, बूलियन या स्ट्रिंग), एक सीमा (एक न्यूनतम और अधिकतम मूल्य के साथ LongRange या DoubleRange ) या एक ideal या exact परिभाषा के साथ एक वस्तु। एक विशिष्ट मूल्य के लिए, ब्राउज़र कुछ संभव के रूप में करीब लेने का प्रयास करेगा। किसी श्रेणी के लिए, उस श्रेणी के सर्वोत्तम मूल्य का उपयोग किया जाएगा। जब exact निर्दिष्ट किया जाता है, तो केवल मीडिया स्ट्रीम करता है जो वास्तव में मैच करता है कि बाधा वापस आ जाएगी।

पास में

 // Camera with a resolution as close to 640x480 as possible
{
    "video": {
        "width": 640,
        "height": 480
    }
}
 

रेंज

 // Camera with a resolution in the range 640x480 to 1024x768
{
    "video": {
        "width": {
            "min": 640,
            "max": 1024
        },
        "height": {
            "min": 480,
            "max": 768
        }
    }
}
 

सटीक

 // Camera with the exact resolution of 1024x768
{
    "video": {
        "width": {
            "exact": 1024
        },
        "height": {
            "exact": 768
        }
    }
}
 

वास्तविक कॉन्फ़िगरेशन को निर्धारित करने के लिए एक मीडिया स्ट्रीम का एक निश्चित ट्रैक है, जिसे हम MediaStreamTrack.getSettings() कह सकते हैं जो वर्तमान में लागू MediaTrackSettings देता है।

ट्रैक पर applyConstraints() कॉल करके, हमने जो मीडिया डिवाइस खोला है, applyConstraints() ट्रैक की बाधाओं को अपडेट करना भी संभव है। यह एप्लिकेशन को पहले से मौजूद स्ट्रीम को बंद किए बिना एक मीडिया डिवाइस को फिर से कॉन्फ़िगर करने देता है।

मीडिया प्रदर्शित करें

एक एप्लिकेशन जो स्क्रीन कैप्चरिंग और रिकॉर्डिंग करने में सक्षम होना चाहता है, उसे डिस्प्ले मीडिया एपीआई का उपयोग करना चाहिए। फ़ंक्शन getDisplayMedia() (जो navigator.mediaDevices का हिस्सा है, getUserMedia() समान है और इसका उपयोग प्रदर्शन की सामग्री (या इसके एक हिस्से, जैसे कि विंडो) को खोलने के उद्देश्य से किया जाता है। लौटा MediaStream काम करता है। जब getUserMedia() का उपयोग कर getUserMedia()

getDisplayMedia() लिए getDisplayMedia() नियमित वीडियो या ऑडियो इनपुट के लिए उपयोग किए जाने वाले लोगों से भिन्न हैं।

 {
    video: {
        cursor: 'always' | 'motion' | 'never',
        displaySurface: 'application' | 'browser' | 'monitor' | 'window'
    }
}
 

उपरोक्त कोड स्निपेट दिखाता है कि स्क्रीन रिकॉर्डिंग के लिए विशेष बाधाएं कैसे काम करती हैं। ध्यान दें कि ये उन सभी ब्राउज़रों द्वारा समर्थित नहीं हो सकते हैं जिनके पास मीडिया समर्थन है।

धाराओं और पटरियों

MediaStream मीडिया सामग्री की एक धारा का प्रतिनिधित्व करता है, जिसमें ऑडियो और वीडियो के ट्रैक ( MediaStreamTrack ) होते हैं। MediaStream.getTracks() , जो MediaStreamTrack ऑब्जेक्ट्स की एक सरणी लौटाता है, को कॉल करके आप MediaStream से सभी ट्रैक पुनः प्राप्त कर सकते हैं।

MediaStreamTrack

MediaStreamTrack में एक kind संपत्ति होती है जो या तो audio या video , जो उस तरह के मीडिया का प्रतिनिधित्व करती है। प्रत्येक ट्रैक को उसकी enabled संपत्ति को टॉगल करके म्यूट किया जा सकता है। एक ट्रैक में एक बूलियन प्रॉपर्टी remote जो यह इंगित करता है कि क्या यह RTCPeerConnection द्वारा RTCPeerConnection और रिमोट पियर से आ रहा है।