2011-05-26 19 views
17

मैं कैमरे के साथ एक प्रोजेक्ट कर रहा हूं और एक फोटो कैमरा फ्रीज लेने के बाद और आपको गतिविधि खत्म करनी है और इसे फिर से याद करना एक और तस्वीर लेने के लिए, मैं केवल 1 के लिए फोटो फ्रीज कैसे ले सकता हूं कैमरा फिर से रखने के लिए -2 सेकंड और फिर सतह दृश्य। वीडियो के लिए वही मैं मीडिया रिकॉर्डर का उपयोग कर रहा हूं, वीडियो प्रेस स्टॉप वीडियो सहेज रहा हूं और स्क्रीन अभी भी जिंदा है लेकिन मैं फिर से वीडियो नहीं ले सकता हूं मुझे गतिविधि को पुनरारंभ करना है?एंड्रॉइड कैमरा एक फोटो लेने के बाद फ्रीज

किसी के पास कोई समाधान है?

+1

कब्जा कर लिया है सकते हैं आप कुछ कोड plz दिखाओ? – PedroAGSantos

+0

@subspider क्या आप कैमरा कार्यक्षमता की जांच करने के लिए गैलेक्सी एस का उपयोग कर रहे हैं? – includeMe

+0

यहां एक ही समस्या है। @dsc हाँ मैं एक आकाशगंगा एस – stoefln

उत्तर

3

पृष्ठभूमि में कोई छवि प्रसंस्करण AsyncTask करें। यह आपकी यूआई गतिविधि को जारी रखने और एक और तस्वीर लेने की अनुमति देगा।

संपादित करें: मैं एक स्वीकृत उत्तर नहीं हटा सकता, इसलिए कृपया नीचे stoefin का जवाब देखें। अगली तस्वीर लेने से पहले camera.startPreview() पर कॉल करना।

+3

का उपयोग कर रहा हूं यही कारण है कि कैमरा ठंडा है - stoefln का जवाब सही है; पूर्वावलोकन को पुनरारंभ करने की आवश्यकता है। – elijah

0

अपने फोन पर मौजूदा कैमरा ऐप द्वारा परिभाषित गतिविधियों का उपयोग करने के बजाय, आप अपनी खुद की गतिविधि लिख सकते हैं जो आपके द्वारा वर्णित कार्यक्षमता को पूरा करने के लिए सीधे कैमरा एपीआई का उपयोग करता है। कैमरा क्लास को यहां दस्तावेज किया गया है: http://developer.android.com/reference/android/hardware/Camera.html

56

मुझे इसके लिए एक समाधान मिला: एक तस्वीर लेने के बाद, पूर्वावलोकन प्रदर्शन बंद हो जाएगा। अधिक तस्वीरें लेने के लिए, पहलेपर कॉल करें।

+0

यह सही जवाब है। धन्यवाद!! – elijah

+1

बस पूर्वावलोकन शुरू करने के लिए मेरे लिए काम नहीं किया। हालांकि पूर्वावलोकन को रोकना और शुरू करना नीचे दिए गए उत्तर में वर्णित है। – shshnk

+0

अरे, भले ही मैं 'startPreview()' कॉल करता हूं, पहले कैमरा खुलने में सक्षम नहीं है। यदि आपने मेरी मदद की तो मैं वास्तव में इसकी सराहना करता हूं! https://stackoverflow.com/questions/47483990/can-only-open-camera-once –

0

कैमरा ठंड है, क्योंकि आप कैमरे के पूर्वावलोकन को पुन: प्रारंभ नहीं कर रहे हैं, तो छवि पर कब्जा आप पूर्वावलोकन बंद करो और इसे वापस फिर से शुरू कर देना चाहिए के बाद camera.startpreview()

15

को फोन करके उसे पुन: प्रारंभ।

mCamera.stopPreview(); 
mCamera.startPreview(); 

यह ठीक काम करेगा।

+0

यहां तक ​​कि अगर मैं ऐसा करता हूं, तो कैमरा खोलने में सक्षम नहीं है। यदि आपने मेरी मदद की तो मैं वास्तव में इसकी सराहना करता हूं! https://stackoverflow.com/questions/47483990/can-only-open-camera-once –

1

कैमरा.स्टार्ट पूर्वावलोकन(); जवाब मेरे मामले के लिए काम नहीं किया लेकिन कोड के नीचे मेरे लिए है कि समस्या का समाधान है और यह अन्य लोगों के भी है.मुझे समापन और कैमरे के उद्घाटन में देरी करने के एक धागे का इस्तेमाल किया की सहायता करेगी बाद एक तस्वीर से 500ms

private void start_camera() { 
    try { 
     camera = Camera.open(); 
     // camera.lock(); 
    } catch (RuntimeException e) { 
     Log.e(tag, "init_camera: " + e); 
     return; 
    } 
    Camera.Parameters param = camera.getParameters(); 
    param = camera.getParameters(); 
    Camera.Size size = param.getSupportedPreviewSizes().get(0); 
    param.setPreviewSize(size.width, size.height); 
    camera.setParameters(param); 
    try { 
     camera.setPreviewDisplay(surfaceHolder); 
     camera.startPreview(); 
     previewRunning = true; 
    } catch (Exception e) { 
     Log.e(tag, "init_camera: " + e); 
     return; 
    }} 
private void captureImage() { 
    camera.takePicture(shutterCallback,null,jpegCallback); 
    Thread restart_preview=new Thread(){public void run(){ 
     try { 
      Thread.sleep(500); 
     } catch (InterruptedException e) { 
      e.printStackTrace(); 
     } 

     camera.release(); 
     camera=null; 
     start_camera(); 
    }}; 
    restart_preview.start();} 
संबंधित मुद्दे