2012-03-17 16 views
8

मैं एंड्रॉइड के सामने वाले कैमरे की कच्ची फ़ीड तक पहुंचने का प्रयास कर रहा हूं। डिफ़ॉल्ट रूप से, सामने वाले कैमरे का पूर्वावलोकन क्षैतिज रूप से फ़्लिप किया जाता है ताकि उपयोगकर्ता खुद को एक दर्पण में देख सकें - यह बहुत अच्छा है, लेकिन मुझे जो चाहिए वह नहीं। कच्ची फ़ीड पाने का सबसे अच्छा तरीका क्या है? स्वचालित फ़्लिपिंग को अक्षम करने का कोई तरीका है, या क्या मुझे इसे कोड में फ़्लिप करने का प्रयास करना चाहिए? मेरे आवेदन को सामने वाले कैमरे की रीयल-टाइम फीड प्रदर्शित करने की आवश्यकता है, बिना इसे दर्पण की तरह फिसल दिया जाए।सामने वाले कैमरे के फ्लिपिंग को रोकें

उत्तर

1

सामने वाले कैमरे का डेटा कैमरे को देखकर आपको देखता है। इसकी छवि का बायां तरफ तुम्हारा दाहिना तरफ है। मुझे लगता है कि यह वही है जो आप पहले से चाहते हैं? जब SurfaceView पर डाल दिया जाता है तो यह फ़्लिप हो जाता है, इसलिए यह आपके जैसा कार्य करता है, लेकिन यह एक अलग कॉस्मेटिक परिवर्तन है।

कम से कम, यह है कि मैंने देखा है कि प्रत्येक डिवाइस कैसे काम करता है और मैंने Barcode Scanner/Barcode Scanner+ में फ्रंट कैमरा समर्थन को लागू करने के लिए इस पर कड़ी मेहनत की है।

+0

समझ में आता है कि https://github.com/hadders/camera-reverse

देखें। मैं वास्तव में इसे SurfaceView के साथ प्रस्तुत करने का प्रयास कर रहा हूं - इसके बजाय मुझे इसके बारे में कैसे जाना चाहिए? – daedalus28

+0

आह। तब मुझे नहीं पता। मुझे लगता है कि आपको छवि डेटा प्राप्त करना होगा और मैन्युअल रूप से 'व्यू' पर पेंट करना होगा। या शायद आपको इसे हाथ से उलटना होगा क्योंकि यह इसे फिर से उलट देगा। मैंने कभी भी उस पहलू को कभी नहीं छुआ है, जब भी मैं डेटा को अलग से सुनता हूं, तो उसे हमेशा 'SurfaceView' पर जो कुछ भी चाहिए, उसे हमेशा फ़्लिंग करने दें। –

+0

मैं भी इसे SurfaceView में गैर-प्रतिबिंबित करना चाहता हूं। क्या तुम्हें कभी कोई हल मिला? –

11

यदि आप बारकोड स्कैनिंग के लिए फ्रंट-फेस कैमरा का उपयोग करना चाहते हैं तो आप TextureView का उपयोग कर सकते हैं और इसमें एक रूपांतरण मैट्रिक्स लागू कर सकते हैं। जब बनावट अद्यतन होती है तो आप छवि डेटा पढ़ सकते हैं और इसका उपयोग कर सकते हैं।

विशेष रूप MainActivity.java

से
mCamera.setDisplayOrientation(90); 
Matrix matrix = new Matrix(); 
matrix.setScale(-1, 1); 
matrix.postTranslate(width, 0); 
mTextureView.setTransform(matrix); 
+0

के लिए संघर्ष कर रहा है कि जिथब से कोड काम नहीं करता है। – CENT1PEDE

+0

अरे @ ग्रीनफ़ॉक्स फॉक्स। मैंने सिर्फ रेपो को क्लोन किया और कमांड लाइन से 'gradle installDebug' चलाया और मेरे नेक्सस 5 पर स्थापित किया। यह चलता है। जब मैं ऐप लॉन्च करता हूं और कुछ टेक्स्ट 'एबीसी' पकड़ता हूं तो यह सामान्य रूप से सामान्य उलटा हुआ बैक-टू-फ्रंट 'सीबीए' की अपेक्षा स्क्रीन पर 'एबीसी' दिखाता है। सही समस्या क्या है? – Steve

+0

लेकिन जब मैंने इसका इस्तेमाल किया, कुछ भी काम नहीं करता .. – CENT1PEDE

संबंधित मुद्दे