2013-02-15 15 views
11

पहली चीजें पहले: निम्न त्रुटि 2 अलग-अलग एचटीसी इच्छाओं पर होती है, एक 2.3.3 के साथ, एक 4.0.4 के साथ।टेक चित्रण ढेर से संबंधित त्रुटि

मैं निम्न त्रुटि संदेश .takePicture कॉल करने के लिए कोशिश कर रहा है जब मिलता है:

E/MemoryHeapBase(104): error opening /dev/pmem_camera: No such file or directory 
E/QualcommCameraHardware(104): failed to construct master heap for pmem pool /dev/pmem_camera 
E/QualcommCameraHardware(104): initSnapshot X failed with pmem_camera, trying with pmem_adsp 

इसी PictureCallback इस त्रुटि के बाद लागू किया कभी नहीं किया गया है।

केवल एक ही स्पष्टीकरण जो मुझे मिल सकता था ए) प्रारंभ पूर्वावलोकन को नहीं बुलाया गया था; बी) तस्वीरों को बहुत तेजी से लेने की कोशिश कर रहा है (चित्र कॉलबैक लागू होने से पहले); ग) सही उपयोग करता है की स्थापना नहीं/अनुमतियाँ

मैं क्या क) यहाँ, onResume() मेरी FullscreenActivity की में:

//open the camera resource 
cam = Camera.open(); 

Camera.Parameters params = cam.getParameters(); 
//change Parameters 
params.setJpegQuality(100);//best quality 
params.setFlashMode(Parameters.FLASH_MODE_TORCH); 
//params.setZoom(2); 
List<Size> supportedPreviewSizes = cam.getParameters().getSupportedPreviewSizes(); 
params.setPreviewSize(supportedPreviewSizes.get(0).width, supportedPreviewSizes.get(0).height); 
cam.setParameters(params); 

SurfaceView sv = (SurfaceView)this.findViewById(R.id.surfaceView1); 
SurfaceHolder mHolder = sv.getHolder(); 
mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); 
mHolder.setSizeFromLayout(); 
mHolder.addCallback(this); 

try { 
    cam.setPreviewDisplay(mHolder); 
} catch (IOException e) { 
    Log.d(TAG, "Error setting camera preview: " + e.getMessage()); 
} 

//Log.d(TAG, "Starting Preview"); 
cam.startPreview(); 

ख) मेरे लिए लागू नहीं करना चाहिए के रूप में मैं केवल लेने का प्रयास एक ही चित्र

ग): का उपयोग करता है-भाग मेरी प्रकट की:

<uses-sdk 
    android:minSdkVersion="8" 
    android:targetSdkVersion="8" /> 
<uses-permission android:name="android.permission.CAMERA"/> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
<uses-permission android:name="android.permission.FLASHLIGHT"/> 
<uses-feature android:name="android.hardware.camera" /> 
<uses-feature android:name="android.hardware.camera.autofocus"/> 
<uses-feature android:name="android.hardware.camera.flash"/> 

कुछ अतिरिक्त कोड:

जहां मैं टेक लेने का आह्वान करता हूं (ध्यान दें कि यहां रिकॉर्डिंग का मतलब है कि एक AsyncTask को कॉल करने की अनुमति है इसे पूरा करने के बाद फिर से चित्रण। अप्रासंगिक तथापि के रूप में त्रुटि कभी बुला AsyncTask बिना बनी रहती है):

findViewById(R.id.snap_button).setOnClickListener(new View.OnClickListener() { 

    @Override 
    public void onClick(View v) { 

     recording = !recording; 

     Button btn = (Button)findViewById(R.id.snap_button); 
     if(recording) { 
      //update buttontext 
      btn.setText("Stop"); 
      //start recording by taking a picture 
      cam.takePicture(null,null, mPicture); 

     } else { 
      //update button text 
      btn.setText("Start"); 
     } 

    } 
}); 

संपादित करें: थोड़ा मेरी लेआउट फेरबदल pictureCallback अंत में शुरू हो जाती है और मैं मान्य डेटा (Yay मिल) के बाद, हालांकि त्रुटि बनी रहती है। यहां मेरा वर्तमान लेआउट है:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="horizontal" > 

    <SurfaceView 
     android:id="@+id/surfaceView1" 
     android:layout_width="0dp" 
     android:layout_height="369dp" 
     android:layout_weight="1.55" /> 

    <LinearLayout 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:orientation="vertical" > 

     <Button 
      android:id="@+id/snap_button" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Capture" /> 

     <ProgressBar 
      android:id="@+id/progressBar1" 
      style="?android:attr/progressBarStyleLarge" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" /> 

    </LinearLayout> 

</LinearLayout> 
+1

क्या आपने समस्या हल की है? –

+0

क्या यह कोड निष्पादित होने पर आपके पास एसडी कार्ड घुड़सवार है? http://forum.xda-developers.com/showthread.php?t=819037#6 –

+0

मैं एसडीकार्ड पर जो चित्र लेता हूं उसे सहेज रहा हूं, इसलिए कोई यह मान लेगा कि यह सही ढंग से घुड़सवार है। मैंने अभी अन-और रीमाउंटिंग करने की कोशिश की लेकिन त्रुटि संदेश बनी हुई है। –

उत्तर

1

मैं कहूंगा कि आपको चरणों में कुछ त्रुटियां हैं।

आपको यह उदाहरण देखना चाहिए: cw-android - camera preview (लाइन 127+)। मेरा अनुमान है कि है कि आप अपने SurfaceHolder.Callback, जहां आम तौर पर आप startPreview() विधि आह्वान चाहिए में पहली बार surfaceChanged जब तक प्रतीक्षा नहीं कर रहे हैं, इस प्रकार अपने स्पष्टीकरण

क) startPreview नहीं बुलाया गया था;

बी) चित्रों को बहुत तेज लेने की कोशिश कर रहा है (चित्र कॉलबैक लागू होने से पहले);

, शायद दोनों सही हैं।

+0

जो कुछ मैं वर्तमान में कर रहा हूं और त्रुटिपूर्णता बनी रहती है।कॉलिंग स्टार्ट पूर्वावलोकन बहुत जल्दी एक अलग त्रुटि का कारण बनता है मुझे लगता है कि –

+0

क्या आप पूर्ण कोड संलग्न कर सकते हैं। मैं एंड्रॉइड 2.3.3 के साथ अपने एचटीसी डिजायर पर परीक्षण कर सकता हूं, इसलिए अगर संदेश जारी रहता है तो हम हार्डवेयर या विक्रेता समस्याओं को खत्म कर सकते हैं :) – Tomo

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