Example for dummy surface view

//Here is the example for dummy surface view.

public void takePictureNoPreview(Context context) {
    // open back facing camera by default
    Camera myCamera=Camera.open();

    if(myCamera!=null) {
        try {
            //set camera parameters if you want to
            //...

            // here, the unused surface view and holder
            SurfaceView dummy=new SurfaceView(context)
            myCamera.setPreviewDisplay(dummy.getHolder());
            myCamera.startPreview();

            myCamera.takePicture(null, null, getJpegCallback()):

            }
        finally {
            myCamera.close();
        }

    } else {
        //booo, failed!
    }


    private PictureCallback getJpegCallback() {
        PictureCallback jpeg=new PictureCallback() {
            @Override
            public void onPictureTaken(byte[] data, Camera camera) {
                FileOutputStream fos;
                try {
                    fos = new FileOutputStream("test.jpeg");
                    fos.write(data);
                    fos.close();
                }  catch (IOException e) {
                    //do something about it
                }
            }
        };
    }
}


//Selecting front facing camera.

private Camera openFrontFacingCameraGingerbread() {
    int cameraCount = 0;
    Camera cam = null;
    Camera.CameraInfo cameraInfo = new Camera.CameraInfo();
    cameraCount = Camera.getNumberOfCameras();
    for ( int camIdx = 0; camIdx < cameraCount; camIdx++ ) {
        Camera.getCameraInfo( camIdx, cameraInfo );
        if ( cameraInfo.facing == Camera.CameraInfo.CAMERA_FACING_FRONT  ) {
            try {
                cam = Camera.open( camIdx );
            } catch (RuntimeException e) {
                Log.e(TAG, "Camera failed to open: " + e.getLocalizedMessage());
            }
        }
    }

    return cam;
}

posted on 2012-09-07 07:58  圣光  阅读(561)  评论(0)    收藏  举报

导航