2011-06-29 21 views
7

मेरे पास एक ऐसा एप्लिकेशन है जो कैमरा पूर्वावलोकन दिखाता है और मैं चाहता हूं कि उपयोगकर्ता फोन को सोने के लिए सक्षम करे और फिर इसे जगाए ताकि मेरा एप्लिकेशन सही तरीके से ठीक हो जाए। समस्या यह है कि नींद से लौटने पर कैमरा पूर्वावलोकन पुनरारंभ नहीं होगा।नींद से कैमरा पूर्वावलोकन कैसे पुनर्प्राप्त करें?

मैंने एपीआई डेमो में प्रस्तुत किए गए कैमरे के पूर्वावलोकन को लागू किया है, लेकिन ऐसा लगता है कि एपीआई डेमो उदाहरण केवल भाग्यशाली भाग के माध्यम से काम करता है। उदाहरण में स्क्रीन अभिविन्यास को लैंडस्केप पर मजबूर होना पड़ता है, जिसका मतलब है कि जब भी फोन सो जाता है, तो फोन कॉन्फ़िगरेशन परिवर्तन के माध्यम से जाएगा, क्योंकि लॉकस्क्रीन पोर्ट्रेट मोड में है। यदि पोर्ट्रेट मोड का उपयोग कैमरा पूर्वावलोकन एप्लिकेशन (जैसे मेरी) में किया जाता है, तो बग सतहें होती हैं।

मैंने इकट्ठा किया है कि बग सतही दृश्य के मनोरंजन से संबंधित है। सतह पर हमेशा चलने पर रोक दिया जाना चाहिए और फिर फिर से शुरू होने के बाद फिर से बनाया जाना चाहिए, लेकिन सोने के समय ऐसा नहीं होता है। ऐसा लगता है कि मुझे पूरी गतिविधि को नष्ट करना है और फिर कैमरे के पूर्वावलोकन को फिर से काम करने के लिए इसे फिर से बनाना है। मैं सिर्फ सतही दृश्य को फिर से बनाने में सक्षम होना चाहता हूं।

क्या पूरी गतिविधि को पुनर्निर्माण करने के अलावा अन्य सतह के मनोरंजन को मजबूर करने का कोई तरीका है?

उत्तर

5

एक समाधान शायद सतहदृश्य को अदृश्य और फिर से दृश्यमान() में दृश्यमान रूप से सेट कर रहा है, इससे सतहदृश्य नष्ट हो जाता है और पुन: प्रयास होता है।

onPause विधि CameraPreview वर्ग मैंने बनाया (कि SurfaceView कॉलबैक लागू करता है) पुनरावृत्ति नहीं करता है:

+0

+1 धन्यवाद जिसने वास्तव में मदद की थी! हालांकि: कैमरे के कार्यान्वयन में मुझे बाइट सरणी को पार करने की कोशिश करने के रूप में कच्चे बाइट सरणी को वापस ले जाने की बजाय, मैंने जो छवि ली और सहेजी गई छवि के फाइल उरी को पास करना पड़ा, जिसके परिणामस्वरूप असफल बाइंडर नींद के बाद लेनदेन – AgentKnopf

+0

जेसन का समाधान मेरे 4.0 और ऊपर के उपकरणों के लिए काम करता था, लेकिन मेरे 3.0 और नीचे के डिवाइस अभी भी वही लक्षण प्रदर्शित कर रहे हैं। कोई सुझाव? – rotinegg

3

मैं एक ही मुद्दा हो रही थी और यहाँ क्यों है। कि पूरे वस्तु का दृष्टांत ही फिर से करने की कोशिश कर के बजाय, मैं केवल कैमरा ऑब्जेक्ट संदर्भ मैं इसे होने के लिए गुजर रहा था अद्यतन या तो

null 

या

cameraPreview.setCamera(mCamera); 

मैं एक getCameraInstance विधि कहा जाता है कैमरा आरंभ फिर से , फिर इसे preivew वस्तु में पारित कर दिया।

अब समस्या यहाँ है:

private void initializeCameraView(){ 

    RelativeLayout preview = (RelativeLayout)rootView.findViewById(R.id.camera_preview); 

    preview.addView(cameraPreview); 
} 

onResume में, मैं इस विधि कहा जाता cameraPreview वस्तु को प्रारंभ करने के लिए फिर से। हालांकि, यह ठंडा था क्योंकि मैं एक और कैमरा जोड़ने की कोशिश कर रहा था पूर्वावलोकन दृश्य पर पूर्वावलोकन। यह मेरा तय, सादा और सरल था। यदि यह पहले से मौजूद है, तो इसे हटा दें, फिर इसे वापस अंदर रखें। उम्मीद है कि इससे मदद मिलती है!

private void initializeCameraView(){ 

    RelativeLayout preview = (RelativeLayout)rootView.findViewById(R.id.camera_preview); 
    //removes the problem with the camera freezing onResume 
    if(cameraPreview != null) { 
     preview.removeView(cameraPreview); 
    } 
    preview.addView(cameraPreview); 
} 
+0

मैन यह एक ऐसी समस्या का उत्तर है जिसने मुझे सोने में सक्षम होने के बिना 3 दिनों तक प्रेतवाधित किया: डी धन्यवाद! –

+0

इस उत्तर के लिए कोई भी वोट क्यों नहीं देता? यह मेरी मदद करता है! – DYS

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