грешка по време на изпълнение, но отстраняването на грешки стъпка по стъпка работи добре

Написах програма за android за правене на снимки без преглед. Програмите ми работят добре, когато отстранявам грешки стъпка по стъпка. Въпреки това, когато я стартирам в режим на изпълнение, програмата не работи според очакванията. Няма запазена снимка и програмата не може да завърши. Освен това не мога да използвам камерата си в други приложения за Android (напр. Камера, Видеокамера), освен ако не рестартирам телефона си. Някой има ли идеи за този проблем? Кодът за правене на снимки и регистрираните грешки е както следва:

Код за снимане:

    SurfaceView view = new SurfaceView(this);
    mCamera = Camera.open();
    Camera.Parameters p = mCamera.getParameters();
    p.setPictureFormat(PixelFormat.JPEG);
    mCamera.setParameters(p);

    try {
        mCamera.setPreviewDisplay(view.getHolder());
        mCamera.startPreview();
        mCamera.takePicture(null, null, mPictureCallback);
        mCamera.stopPreview();
        mCamera.unlock();
        mCamera.release();
    } catch (Exception e) {
        mCamera.stopPreview();
        mCamera.release();
        e.printStackTrace();            
    }

Функцията за обратно извикване

Camera.PictureCallback mPictureCallback = new Camera.PictureCallback() {
          public void onPictureTaken(byte[] imageData, Camera c) {
               if (imageData != null) {
            StoreByteImage(mContext, imageData, 50,
                    "ImageName");
            finish();
        }
    }
};
}

Докладваните грешки от logcat:

ERROR/Adreno200-ES20(130): rb verson is SBA #24
ERROR/mm-camera(130): prepare snapshot: Aec not settle
ERROR/CameraService(130): mHardware->setOverlay() failed with status -2147483648
ERROR/mm-camera(130): camera_issue_command: get_picture error (Connection timed out): length 36, status 0 FD: 20 1
ERROR/QualcommCameraHardware3D(130): getPicture: CAMERA_OPS_GET_PICTURE ioctl failed!
ERROR/NotificationService(292): adbEnabled = false
ERROR/NotificationService(292): adbEnabled = true

Може ли някой да даде някакво предложение? Благодаря ви предварително


person hanqiang    schedule 29.08.2011    source източник


Отговори (1)


това работи ли за вас?

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
            File file = new File(Environment.getExternalStorageDirectory(),
                    currentTimeString + ".jpg");
            outputFileUri = Uri.fromFile(file);
            intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);
            startActivityForResult(intent, TAKE_PICTURE);
person owen gerig    schedule 29.08.2011
comment
Не става. Не се правят снимки и се записват на sd карта. И също така се стартира режимът за преглед на камерата. - person hanqiang; 30.08.2011
comment
да, не бях сигурен, когато публикувах дали това показва визуализация, предполагам, че е така. Знам обаче, че този код работи за правене на снимка (тествани и работещи реализации на телефон и емулатор), така че може би има нещо друго, което се случва за вас. използвате емулатор или истинско устройство? - person owen gerig; 30.08.2011