Game Development Reference
In-Depth Information
public CameraSurface(Context context) {
super(context);
// Install a SurfaceHolder.Callback so we get notified when the
// underlying surface is created and destroyed.
mHolder = getHolder();
mHolder.addCallback(this);
mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) {
// 4 = RGB_565
Log.d(TAG, "surfaceChanged Surface fomat=" + format + " w=" + w
+ " h=" + h);
// Now that the size is known, set up the camera parameters and begin
// the preview.
Camera.Parameters parameters = camera.getParameters();
Log.d(TAG,
"surfaceChanged Preview size: " + parameters.getPreviewSize());
// (17)- YCbCr_420_SP (NV21)
Log.d(TAG,
"surfaceChanged Preview format: " + parameters.getPreviewFormat());
camera.startPreview();
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
Log.d(TAG, "surfaceCreated");
camera = Camera.open();
try {
camera.setPreviewDisplay(holder);
camera.setPreviewCallback(new Camera.PreviewCallback() {
public void onPreviewFrame(byte[] data, Camera cam) {
// Here we have a frame image in NV21 format
}
});
} catch (IOException e) {
e.printStackTrace();
}
}
Search WWH ::




Custom Search