如何在背景上使用Android相机?

时间:2015-03-16 04:13:00

标签: android android-asynctask android-camera

我想在背景上拍照,尝试了一切,但我不能。

这是我的代码:

public void getEmotion(Context context) {

    CameraControls cameraControls = new CameraControls();
    cameraControls.takePicture();

CameraControls类是:

public class CameraControls implements PictureCallback {

    private Camera mCamera;

    public CameraControls() {
        try {
            this.mCamera = Camera.open(1);
            this.mCamera.startPreview();
        } catch (Exception e) {
            Log.e("Mycamera", "CAMERA ERROR");
            e.printStackTrace();
        }
    }

    public void takePicture() {
        Log.i("Mycamera", "Taking picture");

        // Clear up buffers to avoid mCamera.takePicture to be stuck because of a memory issue
        mCamera.setPreviewCallback(null);

        // PictureCallback is implemented by the current class
        mCamera.takePicture(null, null, this);
    }

    // ---- >>> onPictureTaken --- NERVER CALLED    <<< ---- //
    @Override
    public void onPictureTaken(byte[] data, Camera camera) {
        Log.i("Mycamera", "onPictureTaken");
        this.mCamera.release();
    }

我已经在android清单上设置了摄像头权限,问题是从不调用onPictureTaken。如何正确开发?

谢谢!

1 个答案:

答案 0 :(得分:0)

我不明白你的背景&#39;是什么意思。但是,如果您对自定义相机处理感兴趣,那么它涉及的内容比我从您的代码段中看到的要多得多。

您可以查看/可能抓取并修改我放在GitHub上的代码段。它非常符合我的需求,但如果你知道如何剪切,粘贴和删除,它可能会有用。

祝你好运