从未调用Android Camera.takePicture回调

时间:2016-05-10 18:34:23

标签: android android-camera

我知道这个问题已被多次询问,但我无法找到适合我案例的答案。我要做的是在点击事件上调用takePicture(),如下所示:

   FrameLayout take_picture_btn = (FrameLayout) view.findViewById(R.id.take_picture_btn);
    mPicture = new Camera.PictureCallback() {
        @Override
        public void onPictureTaken(byte[] data, Camera camera) {
            Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
            String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
            String imageFileName = "JPEG_" + timeStamp;
            MediaStore.Images.Media.insertImage(activity.getContentResolver(), bitmap, imageFileName, "");
            editProfile.showPhotoEditor(true, bitmap);
        }
    };
    take_picture_btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Camera cam = mPreview.getCamera();
            cam.takePicture(null, null, mPicture);
        }
    });

从其他帖子中我发现camera.stopPreview()camera.release()不应该过早调用,因此我确保我不会在任何地方调用这些方法。但是,似乎在某处使用了stopPreview,因为在调用onPictureTaken回调之前,相机预览会冻结。在adition中,回调在KitKat4.4上运行良好,但它并不适用于Lollipop5.1

我的logcat中有以下消息:

05-10 21:01:09.766 9613-9626/com.emplicore W/CameraBase: Camera service died!
05-10 21:01:09.766 9613-9626/com.emplicore W/CameraBase: mediaserver's remote binder Camera object died
05-10 21:01:09.766 9613-9613/com.emplicore E/Camera: Error 100

这也证明了在调用回调之前相机已停止,但是我不明白为什么会发生这种情况,因为我确信我没有阻止它。

一旦发生点击事件,可能会发生其他一些事件吗?顺便说一句,我也尝试在拍照之前开始预览 - cam.startPreview(),但这并没有解决问题。

0 个答案:

没有答案