इस सुविधा में कुछ तरीके बताए गए हैं. इनकी मदद से, कैमरा क्लाइंट, कैप्चर सेशन चालू होने और कैमरे से स्ट्रीमिंग जारी रहने के दौरान, आउटपुट प्लैटफ़ॉर्म को डाइनैमिक तौर पर जोड़ और हटा सकते हैं. नया आउटपुट, उपयोगकर्ता के चुने गए किसी खास शेयर किए गए कैमरे की स्ट्रीम पर मैप किया जा सकता है. किसी सरफ़ेस को जोड़ने के बाद, उसे किसी भी समय हटाया जा सकता है.
आम तौर पर, किसी कैमरे की स्ट्रीम से जुड़े बफ़र को कई आउटपुट प्लैटफ़ॉर्म पर शेयर किया जाता है. एक इंटरनल रेफ़रंस काउंटर, बफ़र का ट्रैक रखता है, क्योंकि वे उपभोक्ता के पक्ष पर आगे की प्रोसेसिंग के लिए तैयार हो जाते हैं. जब सभी कंज्यूमर अपने टास्क पूरे कर लेते हैं, तो बफ़र, सूची से हट जाता है और कैमरे के लिए उपलब्ध हो जाता है.
पहली इमेज. बफ़र शेयर करना
पहली इमेज में एक उदाहरण दिखाया गया है. इसमें, कैमरा स्ट्रीम 2 से प्रोसेस किए गए बफ़र, कैमरा सेवा में मौजूद खास शेयर की गई आउटपुट स्ट्रीम में, स्ट्रीम स्प्लिटर कॉम्पोनेंट की मदद से डाइनैमिक तौर पर अटैच और डिटैच किए जाते हैं. साथ ही, इनकी गिनती की जाती है और इन्हें मैनेज किया जाता है.
उदाहरण और सोर्स
इस सुविधा को लागू करने का मुख्य तरीका, Camera3StreamSplitter
मॉड्यूल में देखा जा सकता है. इस सुविधा के बारे में जानकारी, डेवलपर के लिए बने रेफ़रंस में देखी जा सकती है:
लागू करना
Camera HAL की ओर से कोई बदलाव करने की ज़रूरत नहीं है, क्योंकि यह सुविधा फ़्रेमवर्क की ओर से लागू की जाती है.
पुष्टि करें
आपके ऐप्लिकेशन में इस सुविधा को लागू करने के तरीके को, MultiViewTest मॉड्यूल और नेटिव एपीआई के लिए नेटिव JNI लाइब्रेरी से जुड़ी सुविधाओं के लिए, सीटीएस के उन मामलों में पास होना चाहिए जो इस सुविधा को कवर करते हैं.