I have built a face detection app where I get the frames from onPreviewFrame, do the face detection and then draw a circle on a canvas above my surfaceView. The problem is frames are automatically displayed using the surfaceview thread when Camera.StartPreview() is started. This is obviously necessary for the PreviewCallback to kick in. As the processing, face detection and drawing, is done in a separate thread(I am assuming here), there is a 2 second delay between the frame being displayed and the result of that frame being processed and drawn on the canvas. What I want to do is stop the camera preview displaying the frames and display them myself after processing. I believe this has three benefits: The delay with disappear. I can draw straight to the bitmap instead of on a canvas which is useless as you can not undo what you have done. It will help keep memory comsumption low by not having two threads using the same image. I've read that it is possible to display frames from the previewCallback, does anybody know how and how to stop the frames being displayed automatically? Many thanks in advance.